Text einlesen und in Datei abspeichern



  • Habe vor ein paar Tagen damit begonnen, mir die Programmiersprache für das Studium anzueignen und stehe nun auf dem Schlauch: Immer, wenn ich das Programm ausführe, schließt Windows automatisch das Programm mit einer Fehlermeldung.
    Das Programm soll Zeichen einlesen und in eine Datei abspeichern.

    #include <stdio.h>
    #include <stdlib.h>

    main()
    {
    FILE *fp;
    char letter;

    printf("Bitte einen Text eingeben! \n");
    fp=fopen("Demo.txt", "w");

    do
    {
    scanf("%s", &letter); /*Zeicheneingabe*/
    putc(letter, fp); /*Zeichen in Datei "Demo.txt übernehmen*/
    }

    while
    (letter= '\n'); /*Bis RETURN gedrückt wird*/

    fclose(fp);

    system("PAUSE");
    }



  • scanf("%s", &letter);
    Mach aus dem s (steht für string) ein c (für character). Sonst versuchst Du eine Zeichenkette in eine Variable zu stopfen, die nur ein einzelnes Zeichen aufnehmen kann -> Speicherfehler.

    while (letter= '\n');
    letter = '\n' ist eine Zuweisung, die immer true ist. D.h., die Schleife wird bis in alle Ewigkeit ausgeführt. Du meinst sicher while(letter != '\n');



  • @Student20 teste mal dieses Programm. Das sollte nach deinen Vorstellungen
    funktionieren!

    #include <stdio.h> 
    #include <stdlib.h> 
    
    #define SIZE 100 //SIZE konstante deren Wert 100 ist kann je nach bedarf verändert werden
    
    main() 
    { 
    FILE *fp; 
    char letter[SIZE]; //Ein Array mit Platz für SIZE(100) Zeichen 
    
    printf("Bitte einen Text eingeben! \n"); 
    fp=fopen("Demo.txt", "w"); 
    
    fgets(letter,SIZE,stdin); /*Zeicheneingabe*/ 
    
    fputs(letter,fp); /*Zeichen in Datei "Demo.txt übernehmen*/ 
    
    fclose(fp); 
    
    system("PAUSE");
    return(0); 
    }
    

    mfg hohesC 😉


Anmelden zum Antworten