Zeilenauswahl bei Umleitung

Hi,
wenn ich habe in einer Textdatei mehrer Strings gespeichert

z.B:
Code:
  string a ;
  ofstream datei("neu.txt");
  
  cout<<"EINS :";
  getline (cin ,a);
  datei<<"Eins :";
  datei<<a;
  
  cout << endl << "ZWEI :";
  getline (cin ,a);
  datei << endl <<"Zwei :";
  datei << a;
  
  
  datei.close();

jetzt möchte ich die 2. Zeile wieder in einen String einlesen.
um den ersten einzulesen benutzt man ja diesen Code :

z.B:

Code:
  string x;
  ifstream infile("neu.txt"); 
  getline(infile,x);

bei diesem Befehl kann ich aber keine Zeile angeben...


Hintergrund ist , dass ich eigendlich eine sav.txt schreiben möchte,
in der ich mehrer Werte speichere.Ich hatte auch den gedanken eine classe zuu speicher , aber da ich da nicht wirklich mit vertraut bin , wollte ich dies erstmal so versuchen...

Mfg
Sigmund
 
moin


Mir sind da zwei Möglichkeiten bekannt:
1. Alles in ein Array packen und sich holen was man braucht.
2. Mit seekp zur entsprechenden Zeile gehen.

Beide Varianten wurden hier schon ausführlich besprochen!


mfg
umbrasaxum
 
ja wenn ich das mit einem Array mache , habe ich aber immer noch keine direckte auswahl... ich guck trotzdem mal

MfG
Sigmund Freud
 
moin


Ich habe erst vor kurzem eine Funktion geschrieben und hier gepostet, mit der du eine Zeile auswählen kannst, wenn du alles in einem Array hast.
Außerdem ist das nun wirklich kein großer Akt.


mfg
umbrasaxum
 
moin


Klar!

Frage: Wie kann man erkennen das eine Zeile zuende ist?
Antwort: Dadurch das danach ncihts mehr kommt, oder das ein '\n' kommt!

Frage: Was bringt mir das jetzt?
Antwort: Ist doch ganz klar, die erste Zeile fängt natürlich vorne an und die zweite Zeile geht von ersten '\n' bis zum zweiten '\n'.

Frage: Wie mach ich das jetzt mit seekp?
Antwort: Wenn du die zweite Zeile haben willst, überprüfst du Zeichen für Zeichen und suchst nach dem ersten '\n'. Nun gibst du alle Zeichen aus die danach kommen, bis zum nächsten '\n' oder dem Ende der Datei.


mfg
umbrasaxum
 
Wird nicht manchmal auch mit \r oder andern Sequenzen die Zeile umgebrochen? Wie soll man denn solche Fälle behandeln?
 
moin


Ich setze vorraus das es sich um reine Textdateien handelt, da wäre mir nicht bekannt das es auch anderes gemacht wird. \r Ist ja kein Zeichen für eine neue Zeile, sondern ein Zeichen um den Cursor zurückzusetzen, ich glaube bis zum Anfang der Zeile.
Aber wie gesagt außer durch ein \n wird das wohl nciht getrennt sein.


mfg
umbrasaxum
 

Neue Beiträge

Zurück