fopen und fputc



  • ich hab grade damit angefangen mich mit Dateiarbeit zu beschäftigen.
    und ich hab jetzt seit 2 h ..... *WAURG* AUSRASAT* ^^ ein BESCHEUERTES PROBLEM.. bitte HELFT MIR!! ich kann jetzt schon net einschalfen.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	FILE * fp;
    	char c;
    
    	do
    	{
    
    		fp= fopen ("TEST.TXT", "a");
    		if(fp != NULL)
    		{
    
    		printf("Text speichern:\n");
    		scanf("%s",&c);
    
    		printf("Quit (j/n)?");
    
    		}
    		}while (c!='j')
    
    		if(fputc (c, fp)==EOF) 
    			printf("Fehler beim schreiben!!!\n");
    
    		fclose(fp);
    
    }
    

    D:\C\C\Dateiarbeit\datei.c(29) : error C2143: Syntaxfehler : Fehlendes ';' vor 'if'

    wat zur hölle is das fürn fehler...ich krieg hier die krise.........

    Achja, ich will einfach nur einen Text, bzw mehrere Texte, Eingaben in eine Datei speichern...



  • du musst nur tun was dein compiler dir sagt...

    Fehlendes ';' vor 'if'

    heisst in dem fall also du musst die do-while-schleife mit nem semikolon abschliessen...



  • warum?



  • weil die Syntax so definiert ist...
    deine Frage ist in etwa die Gleiche als würdest du mich fragen warum man Sauerstoffflasche mit 3 f schreibt... steht halt so im Duden und musst du hinnehmen...
    oder wenns dir nicht passt nen eigenen compiler schreiben 😃



  • ja ist ja ok, ich wollte blos wissen was ich falsch gemacht habe. ich hab noch nich so die ahnung davon.
    is das denn so ok wie ich das gemacht habe? oder gibt es da noch optimierungsmöglichkeiten.

    weil, momentan schreibt er in die datei hinter-ein-ander und nicht wie ich geplant hatte, unter-ein-ander.



  • Dann musst du halt nach jedem Zeichen noch ein newline hinzufügen.

    fputc('\n',fp);
    


  • jo, danke. das mit dem if, ich war gestern echt zu blöde, is logisch das nach der do - while anweisung nen ";" kommen muss ... lol, ich benutz diese blos nicht so oft, deshalb saß ich gestern mit einen blackout vorm pc ^^, trotzdem danke das ihr so schnell antwortet.


Anmelden zum Antworten