3 Pluspunkte 0 Minuspunkte

Ich möchte eine Benutzereingabe von stdin lesen

char name[50];
printf("Name eingeben: \n");
scanf("%s", name);
printf("Hallo %s", name);

In der Ausgabe wird dabei aber immer nur der erste Name angezeigt. Alles was nach einem Leerzeichen kommt wird nicht gespeichert.

von  

3 Antworten

2 Pluspunkte 0 Minuspunkte

So kannst du auch die Leerzeichen mit einlesen.

scanf("%[^\n]s", name);
von (724 Punkte)  
1 Pluspunkt 0 Minuspunkte

Die Funktion fgets liest liest die Eingabe inklusive Leerzeichen. Zusätzlich wird die Eingabe durch Angabe einer Maximallänge begrenzt um Buffer Overflows vorzubeugen.

printf("Dein Name: \n");

char name[30];
fgets(name, sizeof(name), stdin);

printf("Hallo %s", name);
von (766 Punkte)  
0 Pluspunkte 1 Minuspunkt

Mit gets kannst du eine ganze Zeile von stdin lesen.

char string [50];
printf ("Namen eingeben: ");
gets (string);
printf ("Hallo %s",string);
von  
Wieso ist die Funktion gets unsicher