Textdetei einlesen/ausgeben



  • Hallo,
    wie kann ich folgendes Problem realisieren:
    Ein Text soll aus einer Textdatei eingelesen werden und dann einmal Absatzweise/Zeilenweise ausgeben werden. Ein Absatz soll erscheinen und der nächste erst dann wenn die w-Taste gedrückt wurde bzw. es sollen immer 10 Zeilen ausgegeben werden bis zum Tastendruck.
    Kann ich den Text so zeilenweise einlesen bis ein Absatz vorbei ist bzw. immer 10 Zeilen einlesen?
    Für Hilfe wäre ich sehr dankbar!



  • Lies erstmal die Textdatei zeilenweise ein.
    Wenn du das fehlerfrei hinbekommen hast, kümmere dich um die anderen Aufgaben.



  • #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int c;
        FILE *datei;
    
        datei =fopen("D:\\text.txt","r");
        if (datei != NULL){
                 while((c=fgetc(datei))!=EOF)
                 putchar(c);
        }
        else printf("Konnte nicht geoeffnet werden!");
    
        system("Pause");
        return 0;
    }
    

    Ja soweit hab ich es. Wie kann ich den Rest jetzt lösen?



  • fgets() liest immer genau eine Zeile. Hilft dir das weiter?



  • Danke erstmal! Hab versucht fgets für fgetc einzusetzen bekomme es aber nicht wirklich hin.



  • int i;
    for (i = 0; i < 10; ++i)
    {
      char buf[1024];
      fgets(buf, sizeof(buf), file);
      printf("%s", buf);
    }
    

    Gibt 10 Zeilen aus. Was ist daran so schwer 😕



  • strwe schrieb:

    Ja soweit hab ich es. Wie kann ich den Rest jetzt lösen?

    Hast du nicht.
    Du liest zeichenweise ein, nicht zeilenweise gemäß Aufgabenstellung.
    Wenn lesen kann, ist klar im Vorteil (in diesem Fall sogar in doppeltem Sinn).



  • So zeilenweise hab ich es jetzt hinbekommen. Wie kann ich es jetzt absatzweise machen, die Zeilen eines Absatzes sind unterschiedlich?



  • Wie wäre es mit zählen?
    Das können Computer ganz ausgezeichnet.

    Immer Wenn du eine Zeile einliest erhöhst du eine Zählvariable.

    Wenn diese ohne Rest durch 10 teilbar ist, wartest du auf den Tastendruck.


Log in to reply