【发布时间】:2017-03-04 11:21:28
【问题描述】:
我在 C 语言中的所有输入都使用 scanf。现在我看到了关于 scanf() 的其他类似问题,他们建议使用 fgets() 而不是 scanf()。我将来会这样做。然而,目前scanf() 的这部分代码似乎从来没有工作过。我知道有一个解决方案。
我的代码是:
#define LENGTH 1000
#define WORD 100
int main(){
int i = 0;
char s[WORD][LENGTH];
do {
scanf("%s", s[i]);
i++;
}
while (s[i][strlen(s[i])] != EOF);
printf("%s\n", s);
return 0;
}
在检查行尾的while循环中应该有一些东西而不是EOF。最终结果应该是s[] 中的单词数组,并且程序应该打印出不带空格的单词数组。
【问题讨论】:
-
我遇到了
while (scanf("%s", &str[strlen(str)]) == 1)。我在这里是全新的。正如 Iharob Al Asimi 解释的那样,这是错误的。请您解释一下为什么这个解决方案不正确?或者为什么我不能在我的代码中使用它?