# Problem mit leerzeichen in String



## Adi | tmine (30. November 2006)

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. 

```
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);}
```


----------



## deepthroat (30. November 2006)

Hi.

Wenn du zeilenweise Einlesen willst, nimm die Funktion fgets.

Gruß


----------



## Adi | tmine (30. November 2006)

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


----------



## deepthroat (30. November 2006)

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.


----------



## Adi | tmine (30. November 2006)

coole Page danke hab ich gar noch nie gefunden. Ist ja toll wie dort alles erklärt is  

THX


----------

