Textdatei auslesen



  • Och man.... natürlich ist das nur der Main-Auszug... also wirlich !! ...

    das Problem ist das die schleife sich nicht wiederholt... aber ich schreib das jetzt nochmal.. eventuell hab ich was gelöscht



  • na ok.. hier der neue, ganze Code

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    ifstream ein("Hirn.txt");
    string Zeile;
    void lesen(void);
    int main()
    {
    	lesen();
    	while(!ein.eof())
    	{
    		cout << Zeile << endl;
    
    		lesen();
    	}
    
    	return 0 ;
    }
    
    void lesen(void)
    {
    	getline(ein,Zeile);
    }
    

    in der Textdatei sind zwei Zeile...
    eigentlich sollten beie Zeine nach und nach eingelesen und ausgedruckt werden... aber er liest nur die erste und dann is ZICK....

    wieso wiederholt er nicht?


  • Mod

    Makconner schrieb:

    na ok.. hier der neue, ganze Code

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    ifstream ein("Hirn.txt");
    string Zeile;
    void lesen(void);
    int main()
    {
    	lesen();
    	while(!ein.eof())
    	{
    		cout << Zeile << endl;
    	
    		lesen();
    	}
    
    	return 0 ;
    }
    
    void lesen(void)
    {
    	getline(ein,Zeile);
    }
    

    in der Textdatei sind zwei Zeile...
    eigentlich sollten beie Zeine nach und nach eingelesen und ausgedruckt werden... aber er liest nur die erste und dann is ZICK....

    wieso wiederholt er nicht?

    warm sollte er? wenn die zweite zeile gelesen ist, ist die datei ja schon am ende (wie ich annehme), folglich wird dieser letzte string auch nicht ausgegeben.





  • nunja.. er soll schon.. aber ich hab den Fehler gefunden .. und der lag nicht am Code ....

    aer ok... nächste Frage:

    hier haben wir eine Bedingung

    while(Text[b]!=' ')
    

    die da heist: ➡ "solange Text in Abhängigkeit von b nicht " " ist wiederhole die Schleife.. soweit so gut

    aber ich brauche eine ODER-Verknüpfung und irgendwie bekomm ich es nicht hin.
    ich würde es ja so schreiben

    while(Text[b]!=' ' || Text[b]!='\0')
    

    aber das mag er nicht...



  • Ich glaube du solltest dir nochmal die Logischen Operatoren genauer anschauen.
    Folgendes:

    - || (Oder)      ist true, wenn eine Bedingung true ist.
    - && (Und)       ist true, wenn alle Bedingungen true ist.
    

    In deinem Falle musst du den Oder-Operator durch einen Und-Operator ersetzen. Dann wird die Schleife nämlich nur ausgeführt, wenn alle Bedingungen true sind.

    Caipi


Anmelden zum Antworten