getline-Methode in for-Schleife



  • Hallo Leute !

    Ich hab hier ein kleines Programm, das gerne noch größer werden würde. Leider habe ich ein Problem, bei dem ich nicht weiterkomme.

    Ich habe eine Textdatei, aus der ich zeilenweise auslesen möchte, und die Zeilen dann auf dem Bildschirm ausgeben. Das tut das Programm auch, doch leider stürzt mir die Console ständig ab, wenn es einige Zeilen ausgegeben hat.

    Hier mal der Code. Vielleicht fällt euch ja was dazu ein. Nicht wundern über die nicht benutzte "eingabe". Das Programm ist halt noch nicht fertig.

    #include <stdio.h>
    #include <fstream.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      int i;  //  Zählvariable
      char chZeile[200];   // Kopie des Inhalts einer Zeile
      char chDateiOut[100] = "D:\\Testordner\\Net_Namen.txt";  // Pfad/Name der zusammenhängenden Datei
      char chDateiIn[100] = "D:\\Testordner\\Test.txt"; // Pfad/Name der einzelnen Dateien
    
      ifstream ausgabe;  // Objekt der Klasse "ofstream" erzeugen
      ofstream eingabe;  // Objekt der Klasse "ifstream" erzeugen
      ausgabe.open(chDateiOut, ios::in);   // Mit der open-Methode die Datei chDateiOut
                                           // zum Lesen öffnen
        ausgabe.seekg(0,ios::beg);   // Dateizeiger an den Anfang der Datei setzen
    
        for (i=0; i=5; i++) {
          ausgabe.getline(chZeile, 200, '\r');
          cout << chZeile <<"\r" ;
          };
    
      system("PAUSE");
    
      return 0;
    }
    


  • #include <stdio.h> //brauchst du nicht
    #include <fstream.h> //verwende fstream
    #include <stdlib.h> //verwende cstdlib
    //include iostream
    
    int main(int argc, char *argv[])
    {
      int i;
      char chZeile[200];
      char chDateiOut[100] = "D:\\Testordner\\Net_Namen.txt";
      char chDateiIn[100] = "D:\\Testordner\\Test.txt";
    
      ifstream ausgabe;//schlechter name
      ofstream eingabe;//sinnlos
      ausgabe.open(chDateiOut, ios::in);//verwende den Ctor dafuer
        ausgabe.seekg(0,ios::beg); //sinnlos
    
        for (i=0; i=5; i++) { //i=5 ist so ziemlich IMMER true
          ausgabe.getline(chZeile, 200, '\r'); // \r?? wieso?
          cout << chZeile <<"\r" ;
          };
    
      system("PAUSE");
    
      return 0;
    }
    

    ich wuerde lieber mit getline() und string aus <string> arbeiten!!


Anmelden zum Antworten