ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
563
563
EMPFEHLEN
-
Hallo,
ich habe folgendes Problem: Ich habe eine Datei, in der z.B.:
"RECT 1 2 3 4
SQUARE 2 4 5"
gespeichert ist.
Nun möchte ich die Zeilenweise in einem Array speichern.
Wie könnte ich es verwirklichen ****
mfg yunus219
-
10.12.10 17:11 #2
- Registriert seit
- Oct 2010
- Beiträge
- 35
In C und mit dynamischer Speicherallokierung z.B.
Code c:1 2 3 4 5 6 7 8 9 10 11 12
int anzahl = 0, i; char **zeilen = NULL, zeile[100]; FILE *f = fopen("datei.txt","r"); while( fgets(zeile,100,f) ) { zeilen = realloc(zeilen, ++anzahl * sizeof(*zeilen)); zeilen[anzahl-1] = malloc( strlen(zeile)+1 ); strcpy(zeilen[anzahl-1],zeile); } fclose(f); for(i=0;i<anzahl;i++) printf("%s", zeilen[i] );
Die Ergebniszeilen besitzen meist noch jeweils ein abschließendes '\n', was je nach weiterem Verwendungszweck stört oder nicht.Geändert von Trulleberg (10.12.10 um 17:34 Uhr)
-
Sorry,
ich habe vergessen zu erwähnen, dass ich es in C++ verwirklichen möchte.
Dankeschön für die schnelle Antwort Trulleberg, aber ich bekomme die Fehlermeldung "invalid conversion from void to char", da ich es in C++ haben will, anstatt von C.
-
11.12.10 09:50 #4
- Registriert seit
- Oct 2010
- Beiträge
- 35
Das ist ganz normal, dass Fehlermeldungen auftreten, wenn man versucht, mit einem C++ Compiler C Code zu übersetzen. Ich habe ja auch extra drübergeschrieben, dass es sich um C handelt.
Setze vor die *alloc-Funktionen (char**) bzw. (char*) und gut is.
-
Hey,
du kannst es auch so machen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <fstream> #include <string> using namespace std; fstream fDatei; string stInhalt; int iZahl; fDatei.open("C:\\test.dat", ios::in | ios::binary); //Öffne die Datei 'test.dat' if(fDatei.good()) //Überprüfung ob sie geöffnet werden konnte { for(iZahl = 1; iZahl <= 1; ++iZahl) //Auslesen der 1. Zeile { getline(fDatei, stInhalt); } fDatei.close(); //Schließe die Datei }
Du kannst hiermit genau festlegen, welche Zeile du auslesen willst.
Ob die 1., 2., usw., jenachdem wie weit die for()-Schleife hochzählt.
Um die 5. Zeile auszulesen, musst du sagen "for(iZahl= 1; iZahl <= 5; ++iZahl);"
Der Inhalt steht in der string-Variablen "stInhalt" drin.
Hoffe ich konnte dir helfen...
P.S.: hier steht alles über die fstream-Funktionen: http://www.willemer.de/informatik/cpp/fileop.htm
grußWenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
Hallo nochmal,
Danke für Eure schnelle Antworten, mit der getline habe ich es auch schon gehabt, nur mein Problem ist dann, dass ich dann die ganze Zeile in einem String habe. Ich möchte es ja in einem Array haben.
-
Du kannst ja den string-Inhalt in ein Array schreiben. Das ist ja kein Problem.
Dafür gibt es ja die Funktion strcpy(), und bezüglich der größe kannst du ja den string überprüfen wie groß er ist, und ein entsprechend großes Array erstellen.
grußWenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
Hallo nochmal,
ich habe immer noch keine Lösung für meinen Problem gefunden.
Ich bekomme alles ausgelesen, nur bekomme ich das dann nicht seperat in den Array, wie ich es haben möchte.
Ich möchte es so haben:
1. Zeile: RECT 11 2 13 4 --> string s[zeilennr]="RECT" int i[zeilennr][0]=11 ...... int i[zeilennr][3]=4
2. Zeile: SQUARE 21 4 5 --> string s[zeilennr]="SQUARE" int i[zeilennr][0]=21 ...... int i[zeilennr][2]=5
-
12.12.10 18:25 #9
- Registriert seit
- Oct 2010
- Beiträge
- 35
Das Problem bei Anfängern ist, dass sie meist zwar vage Vorstellungen vom Ziel ihrer Programme haben, aber schon ganz genau wissen, wie der Weg dahin aussehen muss. Genauso bei dir, da du einerseits "eine Zeile in einem Array" haben willst, dich aber jetzt plötzlich doch für mehrere Arrays entschieden hast: "string [], int[], ...".
Schau dir mal Strukturen an, damit wenigstens etwas Systematik in deine Arbeitsweise kommt.
Ähnliche Themen
-
Variablen übergeben, auslesen, Datei mit Variablen includen, aber wie?
Von hrboy im Forum PHPAntworten: 8Letzter Beitrag: 03.07.09, 11:13 -
VB.NET Wie am besten Variablen in Datei speichern? (Ini-Datei)
Von Terminator2 im Forum .NET DatenverwaltungAntworten: 6Letzter Beitrag: 20.04.07, 10:24 -
mehrere Variablen in Datei speichern und gezielt auslesen
Von Terminator2 im Forum Visual Basic 6.0Antworten: 13Letzter Beitrag: 24.08.06, 16:37 -
Mit PHP variablen in eine Text Datei Speichern/Auslesen
Von Eisbaer im Forum PHPAntworten: 0Letzter Beitrag: 25.04.05, 19:08 -
Variablen in separater .js-Datei speichern
Von gelbfuessler im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 11.10.04, 14:50





Zitieren
Login






