datei zeichenweise lesen



  • Moin alle!
    Ich versuche mit dev c++ in eine datei alle char zeichen zu schreiben und wieder auszulesen. mein problem ist, dass beim 26'sten zeichen nicht mehr gelesen wird:

    #include <fstream.h>
    int main()
    {     unsigned char ucBuf;
          ofstream outFile ("C:/datei.txt", ios::out);
          for (int i=0;i<256;i++) outFile << (char)i;
          outFile.close();
    
          //--- ab hier wird gelesen
          ifstream inFile  ("C:/datei.txt", ios::in | ios::nocreate);
          while(inFile.get(ucBuf)) {  // diese schleife läuft nur 26 mal. beim 26'sten zeichen bricht die ab. shit!!
               cout << (int)ucBuf<<endl;
           }
           inFile.close();
      return 0;
    }
    

    kein mir da einer helfen?
    danke, gruß



  • Die Dateinamen müssten imho "C:\\datei.txt" heißen 😕

    MfG SideWinder



  • @SideWinder den Slash frisst er bei mit auch...
    ich würd vermuten er sollte binär zum lesen öffnen...



  • Windalf schrieb:

    @SideWinder den Slash frisst er bei mit auch...
    ich würd vermuten er sollte binär zum lesen öffnen...

    Was ja nur die \n\r-Konvertierung vornimmt und imho hier auch wenig bringt 😕

    Welches Steuerzeichen ist 26 im Ascii-Chart?

    MfG SideWinder



  • na müsste es nicht egal sein, welches zeichen/steuerzeichen 26 ist?

    jedenfalls soll ich die einzelne char zeichen in der datei auswerten, wie ich diese einlese, ist egal. hättet ihr ein funktionierenden beispiel code dazu?

    danke



  • Mach doch mal folgendes:

    füge ein

    if(i==26) continue;

    ins innere Deiner for-Schleife beim schreiben ein.
    Schau mal, wie weit Du dann kommst. Dann weißt Du wenigstens, ob's daran liegt oder nicht.

    MfG Jester



  • Mit welchem kaputten Compiler hast du das kompiliert?
    Nachdem ich das mal überhaupt kompilierbar gemacht habe, funktioniert es:

    #include <fstream>
    #include <iostream>
    using namespace std;
    
    int main()
    {     int ucBuf;
          ofstream outFile ("datei.txt");
          for (int i=0;i<256;i++) outFile << (char)i;
          outFile.close();
    
          //--- ab hier wird gelesen
          ifstream inFile  ("datei.txt");
          while((ucBuf = inFile.get()) != EOF) {
               cout << (int)ucBuf<<endl;
           }
           inFile.close();
      return 0;
    }
    


  • ne funktioniert nicht. auch mit visual studio 6.0 kommt des bis 25.
    ????

    gruß


Anmelden zum Antworten