Code:ANSI C - wie liest man von stdin Wort für Wort?
#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, wie es zu erwarten ist. Wenn ich in getippt:
abc def ghi.
Es wäre Ausgabe:
You've written: abc
You've written: def
Wie kann ich es beheben? Das Ziel ist es, jedes einzelne Wort von stdin zu lesen, bis es "ENTER" oder ein "." (Punkt).
Was über das Schreiben 'scanf ("% s ")' einmal, dann Aufruf von 'scanf ("% s ")' in der Schleife? –
Abgesehen von dem Problem, benutzen Sie bitte 'scanf ("% 49s ", i)' in diesem Fall, um die Pufferüberläufe zu verhindern. "K? – dmckee
Danke, aber sie haben das Problem nicht behoben. Die Sache ist, dass die while-Schleife endet, bevor die letzte Gruppe von Charakteren erreicht wird, und das ist nicht das, was sie tun soll. –