Textdatei erstellen



  • Hallo zusammen,

    bin neu im Programmierbereich, deswegen ist die Frage wahrscheinlich ziemlich lächerlich...
    Ich sitze jetzt schon seit Stunden an dieser Aufgabe, aber ich komme auf keine Lösung weil ich den Aufbau von dieser FILE Erstellung nicht verstehe!

    Aufgabe ist es, über die Konsole einen Text einzugeben, der dann in einer TXT-Datei im Verzeichnisordner gespeichert wird.

    char TEXTEINGABE (char *text){
    
    	system("cls");
    
    	fflush(stdin);
    	printf("Text eingeben: ");
    	fgets(text,200,stdin);
    
            /*FILE *datei;
    	fputs("Hallo",*datei);
    	fclose(*datei);*/
    
    	return 0;
    }
    

    Die Frage ist jetzt, wie die Funktion hinter dem FILE aussehen muss? Ich dachte mit dem obigen Befehl wird eine Datei erstellt, Hallo hineingeschrieben und dann geschlossen, aber das scheint so nicht zu klappen?

    Habe ich das richtig verstanden, dass am Anfang vom Text mit fgets der eingegebe Text im String gespeichert wird? Nur wie ruf ich den dann wieder auf?

    Vielen Dank im Voraus!!

    Liebe Grüße


  • Mod

    Du musst die Datei schon noch öffnen. Und die Syntax der verschiedenen Dateioperationen guckst du dir besser auch noch einmal an.



  • fopen(datei, "w");
    

    ok ja das öffnen habe ich vergessen, aber was ist an der Syntax falsch? Ich habs wie gesagt nicht so wirklich verstanden wie die einzelnen Befehle aufgebaut sind, wär klasse wenn du mir das kurz erklären könntest!



  • Das 2te Suchergebnis von google liefert dir
    http://www.cplusplus.com/reference/cstdio/fputs/
    Mehr kannst du kaum erwarten.

    https://www.google.de/search?q=fputs
    Ist doch nicht so schwer, oder?

    Zeigeradresse und Zeigerinhalt ist dann noch ne Verständnisfrage.


  • Mod

    Wie wäre es mit einem Blick in eine Referenz?
    http://www.cplusplus.com/reference/clibrary/
    http://en.cppreference.com/w/c

    Daraus Signatur von fopen:

    FILE * fopen ( const char * filename, const char * mode );
    

    Signatur von fputs:

    int fputs ( const char * str, FILE * stream );
    

    Signatur von fclose:

    int fclose ( FILE * stream );
    

    Aber in deinem Code:

    fopen(datei, "w");
    

    Du benutzt also einen FILE* und einen const char* als Argumente.

    fputs("Hallo",*datei);
    

    Du benutzt also einen const char* und einen FILE als Argumente.

    fclose(*datei);
    

    Du benutzt also einen FILE als Argument.

    Programmieren ist weder raten, wie etwas wohl funktionieren könnte; noch so lange Sternchen und Klammern in zufällig im Code verteilen, bis der Compiler die Klappe hält. Programmcode ist Logik pur. Du musst von jedem Zeichen in deinem Code genau wissen, wo und warum du es setzt.

    Hier solltest du dir wohl noch einmal genauer ansehen, was ein Zeiger ist und was die Sternchen bei Zeigern bedeuten.



  • *SeppJ war zu langsam. :p


Log in to reply