Datei einlesen Zeile überspringen

Krikus

Mitglied
Hi,

ich habe solch eine datei:

Code:
......
dd,ddd,dd,d,d
*
112,212,212
.......

Nun ließt er bei mir bis zu dem Sternchen ein, und springt dann aus der ersten While Schleife zum einlesen raus.
Nun steht allerdings der Lesezeiger auf der Zeile mit dem Sternchen.
Wie kann ich diesen nun eine Zeile weiter nach unten rücken, damit die 2 while-Schleife direkt bei den nächsten Daten beginnen kann..

Code:

C++:
while(getline(textfile,line))
			{		
				...
				if(line.find('*'))break;	//Abruchkriterium
			
				....
			}	
	

			while(getline(textfile,line)){		
				if(line.find('*'))
				{
					cout << "Test 2 Schleife_Fehler ";
						break;
				}
				
				.......

				}
Gruß

Krikus
 
Hallo ,wie wäre es wenn du die Zeile einfach nicht beachtest/bearbeitest, also auch nicht rausspringen. Statt dem Schlüsselwort break machst du continue ;)

mfg
 
geht leider nicht. Ich muss rausspringen, weil sich die Einleseroutine ändert.
Das denke ich eher nicht. Die Einleseroutine bleibt nach wie vor die gleiche: nämlich zeilenweises Einlesen, da der Code der beiden while-Zeilen gleich ist.
Was sich vermutlich ändert ist die Behandlung der eingelesenen Daten und das sollte sich über if( ... ) steuern lassen.

Du solltest deinen Algorithmus evt. noch mal überdenken.

Gruß
MCoder
 
Irgendwie raff ich es nicht.
Trotzder If-Abfrage, springt er in den Innertest und verursacht so einen Fehler, obwohl Line immer noch # ist.

C++:
......
//2 Einleseroutine
while(getline(textfile,line)){		
				if(line.find('#'))
				{
					cout << "Test 2 Schleife ";
					
						//continue;
				}else{
					cout << "Innertest" << endl;
}
}
......
 
Hallo Krikus,

du verwendest string.find falsch. Die Methode gibt die Position der Fundstelle zurück oder string::npos, wenn der Suchbegriff nicht gefunden wurde. Bei dir ist die Fundstelle an Position 0, was von C++ als false interpretiert wird.

Grüße, Matthias
 
Zurück