Wie kann Sie zulassen, dass Leerzeichen eingegeben werden, die Verwendung von scanf?

Verwenden Sie den folgenden code:

char *name = malloc(sizeof(char) + 256); 

printf("What is your name? ");
scanf("%s", name);

printf("Hello %s. Nice to meet you.\n", name);

Kann ein Benutzer geben Sie Ihren Namen, aber wenn Sie einen Namen eingeben mit einem Leerzeichen wie Lucas Aardvark, scanf() gerade schneidet alles nach Lucas. Wie mache ich scanf() ermöglichen Räume

  • Beachten Sie, dass mehr idiomatisch ist 'malloc(sizeof(char) * 256 + 1) "oder" malloc(256 + 1)', oder noch besser (vorausgesetzt 'name' verwendet, wird streng lokal) 'char name[256+1]'. Das '+1' als mneumonic für den null-terminator, das muss einbezogen werden in die Zuteilung.
  • Ich vermute sizeof(char) + 256 war ein Tippfehler.
InformationsquelleAutor Kredns | 2009-08-08
Schreibe einen Kommentar