【发布时间】:2012-04-13 20:54:15
【问题描述】:
代码:
#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;
}
一个问题是代码没有按预期执行。如果我输入:
abc def ghi.
它会输出:
You've written: abc
You've written: def
我该如何解决?目标是从标准输入读取每个单词,直到它到达“ENTER”或“。” (点)。
【问题讨论】:
-
写一次
scanf("%s"),然后在循环中调用scanf(" %s")怎么样? -
抛开问题不谈,在这种情况下请使用
scanf("%49s ", i),以养成防止缓冲区溢出的习惯。 'K? -
谢谢,但他们没有解决问题。问题是 while 循环在到达最后一组字符之前结束,这不是它应该做的。
标签: c