Wie kann ich in eine Datei schreiben?



  • Hey
    ich hab ein hoffentlich kleines Problem. In meinem Programm das ich erstelle lege ich eine Datei an, dessen Namen der Benutzer aussuchen kann was auch alles funktioniert. Doch dann soll der Benutzer noch etwas in die Datei rein schreiben können habe es mit fgets probiert aber wenn ich die erstellte Datei öffne steht da nix drin.... 😕
    Mein code

    FILE*fp;
    printf("Geben Sie den Dateinamen ein:");
    fgets(dateiName, FILENAME_MAX, stdin);
    strcat(dateiName, dateiEndung);
    fp=fopen(dateiName, "w");
    printf("Datei wurde angelegt\n");
    enterBestaetigung();

    //Eingabe der Auftraege

    int AuftragsAnzahl;
    int a = 1;
    int standplatz;
    printf("Wie viele zu bearbeitende Auftraege gibt es?\n");
    scanf("%d", &AuftragsAnzahl);
    printf("Geben Sie die Auftraege ein:\n");

    // Die Auftraege werden in die zuvor benannte Datei geschrieben
    while ( a <= AuftragsAnzahl)
    {
    printf("Auftrag%d:\n", a);
    fgets(dateiName,MAX, stdin);//hier funktioniert es nicht richtig
    enterBestaetigung();
    a++;
    }
    fclose(fp);

    Lg



  • fgets() soll ja auch LESEN und nicht SCHREIBEN. Zum Schreiben gibt es eigene Funktionen (allen voran fputs() und fprintf()).



  • Ersteinmal danke für die schnelle Antwort klingt logisch^^ aber im gleichen Atemzug muss ich nochmal eine Frage stellen.ich hab das mit fprintf ausprobiert jedoch nur Beispiele gefunden wie ich was vorgeben kann das in die Datei soll.doch nicht wie ich das mache wenn der Benutzer das angeben soll...dann muss ich das doch durch scanf vorher abspeichern oder nicht?irgendwie so:
    fopen.....
    Char Name;
    int Anzahl;
    printf(" wie viele Namen sollen eingegeben werden?");
    scanf("%d", &anzahl);
    while(Anzahl<=16)
    {
    scanf("%s",& Name);
    fprintf( Datei,"%s",Name);
    anzahl++;
    }
    fclose....
    Oder liege ich wieder komplett daneben? 😕
    Lg und danke nochmals XD



  • Ja, so in etwa kannst du es machen wenn du Name entsprechend korrigierst.



  • Sollte dir dein Compiler doch zeigen, oder?

    fopen.....
    Char Name;  // hier noch mal in die Unterlagen sehen
    int Anzahl;
    printf(" wie viele Namen sollen eingegeben werden?");
    scanf("%d", &anzahl);
    while(Anzahl<=16)
    {
      scanf("%s",& Name);  // hier nachsehen was bei String anders
      fprintf( Datei,"%s",Name);
      anzahl++;
    }
    fclose....
    

    Gefällt dir der Quelltext in bunt nicht besser?

    MfG f.-th.



  • Ohaaaaaa 😃
    super!!! vielen vielen dank für die Kommentare hinter meinem code jetzt geht es endlich
    👍 👍


Anmelden zum Antworten