Datei auslesen



  • huhu leute
    hab irgendwie en komisches problem, für euch aba bestimmt kein ding:P

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
         char x;
    
         ofstream aus("Datei.txt");   
         if(aus)
         {
             aus << "Hallo";
         }
    
         aus.close();
    
         ifstream ein("Datei.txt");
         if(ein)
         {
              while( ! ein.eof() )
              {
                   ein >> x;
                   cout << x;
              }
         }
         ein.close();
    
         system("pause > nul");
         return 0;
    }
    

    Problem: - Warum wird das 'o' von hallo 2x eingelesen und ausgegeben??
    - Wenn ich ein >> x; und cout << x; weglass und in der while nichts mehr drin steht hab ich eine endlosschleife...warum dass?

    danke für eure hilfe
    mfg Dweb 🙂



  • Korrektur: ich meinte wenn die datei leer ist und ich in die while keine anweisungen schreibe dass ich dann eine endlosschleife hab... ich dachte dann hab ich sofort eof()=true



  • Afaik ist eof nicht das letzte Element, sondern das Ende des Buffers. Also ist noch nicht Schluss, wenn o kommt, und er macht die Schlaufe noch einmal und dann gibts hald noch ein o.
    Im übrigen würde ich das eh so machen:

    while(ein >> x;)
    {
       cout << x;
    }
    

Anmelden zum Antworten