Zeilenauswahl bei Umleitung

moin


Ich sehe gerade das seekp wirklich kein teil von istream ist!
Du musst seekg benutz!


mfg
umbrasaxum
 
mhhh also...

Code:
int main(void)
{
  string a[1] ;
  ofstream datei("neu.txt");
  
  cout<<"EINS :";
  getline (cin ,a[0]);
  datei<<"Eins :";
  datei<<a[0];
  
  cout << endl << "ZWEI :";
  getline (cin ,a[1]);
  datei << endl <<"Zwei :";
  datei << a[1];
  
  
  datei.close();
  
  
  
  
  string x;
  ifstream infile("neu.txt");
  
  
  getline(infile,x);
  cout << x << endl;
  
  while(infile.get() != '\n')
	{infile.seekg(1);}
  infile.seekg(1);
  getline(infile,x);
  cout << x << endl;
  system ("Pause");
  
  return 0;
}
so sieht der Programmteil jetzt aus...
der compeliert das jetzt , macht dann aber in der ausgabe nicht weiter...
ich glaub ich verzweifele
 
moin


Nein musst du nicht und es ist doch klar das nach der Ausgabe ncihts mehr kommt, da danach auch ncihts mehr steht!


mfg
umbrasaxum
 
moin


Ja das meinte ich auch nciht, und wenn die Datei nur 2 Zeilen hat ist es klar das der Code nciht geht.


mfg
umbrasaxum
 
noch mal ganz von vorne ...



string x; Deklaration
ifstream infile("neu.txt"); Einlesen der datei


getline(infile,x); Herrauslesen der 1.Zeile
cout << x << endl; Ausgabe der 1.Zeile

while(infile.get() != '\n') Weitergehen, bis \n
{infile.seekg(1);} Die nächste Zeile
infile.seekg(1); Noch einen weiter bis in die nächste Zeile
getline(infile,x); Herrauslesen der 2.Zeile
cout << x << endl; Ausgabe der 2. Zeile
system ("Pause");



oder?
 
moin


Halt dich doch bitte mal an die Netiquette!

Also an der Stelle wo du geschrieben hast "Herrauslesen der 2.Zeile" liesst er schon die dritte aus! Und wenn die dritte nciht da ist, kann er das auch nicht tun.

Durch:
Code:
while(infile.get() != '\n')
    infile.seekg(1);
infile.seekg(1);
wird eine Zeile übersprungen!


mfg
umbrasaxum
 
ok, also hab ich noch ne zeile hinzugefügt.

da das immer noch nicht funktionierte , hab ich mal eine intensive Fehlersuche betrieben und folgenden Code geschrieben :

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

  while(infile.get() != '\n')
	{infile.seekg(1);cout << infile.get();system("Pause");}
		
  infile.seekg(1);
  getline(infile,x);
  
  cout << x << endl;
  
  system ("Pause");

dieser Code gibt das eingelesene zeichen direkt aus und wartet dann.Und das resultet :
er ließt immer das selbe ein, was bei mir immer 105 war ... (eingegeben habe ich abc)

weiß jemand ob das am einlesen oder am seekg() liegt oder überhaup wo mein problem liegt ?

MfG
Sigmund
 

Neue Beiträge

Zurück