ANSI-C - wie von stdin Lesen, Wort für Wort?

Code:

#include <stdio.h>
int main(void) {
    char i[50];
    while(scanf("%s ", i)){
        printf("You've written: %s \n", i);
    }
    printf("you have finished writing\n");

    return 0;
}

Ein problem ist, dass der code nicht tun, weil es erwartet wird. Wenn ich tippte in:

abc def ghi.

Wäre es-Ausgang:

You've written: abc
You've written: def

Wie kann ich es beheben? Das Ziel ist, Lesen jedes einzelne Wort von stdin, bis es erreicht "ENTER" oder ein "." (Punkt).

  • Was über das schreiben scanf("%s") einmal, dann ruft scanf(" %s") in der Schleife?
  • Abgesehen von dem problem, nutzen Sie bitte scanf("%49s ", i) in dieser Instanz zu sein in der Gewohnheit der Verhinderung von buffer-overruns. 'K?
  • Danke, aber Sie hat das problem nicht behoben. Die Sache ist die while-Schleife endet vor dem erreichen der letzten Gruppe von Zeichen, und das ist nicht das, was es tun soll.
Schreibe einen Kommentar