Problem mit leerzeichen in String

Adi | tmine

Erfahrenes Mitglied
Hi leute.

Ich hab mal wieder was in c coden wollen. Nur leider will das nicht wo wi ichs will.
Da ich nicht sooo gut c kann dachte ich mir ihr könnt mir sicher weiterhelfen. =)
Also ich hab folgendes Prog geschrieben. Es soll das was der User eingibt in nem Textfile speichern. Nur leider schneidet er den String ab sobald ein Leerzeichen kommt. Wie kann ich das Verhindern?

Ich denke diese Zeilen sollten reichen.
Code:
printf("Name:\n");
scanf("%s", &name);
printf("Problem:\n");
scanf("%s", &problem);

datei = fopen ("log.log","at");
    if(NULL == datei) {
    fprintf(stderr, "Fehler beim Oeffnen ...\n");
    return EXIT_FAILURE;
    }
    fprintf (datei, "________________\nName:\n%s\n\nProblem:\n%s\n________________\n",name , problem);
    fclose(datei);}
 
hmm kannst du mir das mal genauer erklären, ich hab mal gegoogelt, aber die Funktion leuchtet mir nicht so ein ^^ wär nett ... danke schon mal für die antwort
 
Das ist z.B. hier ziemlich gut erklärt.

Gruß

PS: Obwohl es nicht ganz richtig ist was dort steht:
Sollten Sie in diesem Beispiel 120 Zeichen eingegeben haben, liest fgets() davon 98 sichtbare Zeichen plus Newline-Zeichen (\n) plus Stringende-Zeichen (\0) ein. fgets() hängt am Ende des Strings immer ein \n–Zeichen an.
Wenn man 120 Zeichen (ohne Newline-Zeichen) hinterneinander eingibt, liest fgets in dem Beispiel 99 Zeichen ein. Und fgets fügt immer noch ein \0 Zeichen am Ende des Puffers hinzu - kein \n Zeichen.
 
Zuletzt bearbeitet:
Zurück