【发布时间】:2020-10-27 11:39:12
【问题描述】:
我正在尝试将多个字符串从标准输入存储到一个临时变量中。
每个字符串都将在一个换行符之后输入。
这是我的尝试:
#include <stdio.h>
int main() {
for (int i=0; i<10; i++) {
char string;
scanf("%s\n", &string);
printf("%d\n", i);
}
}
for 循环没有按预期运行,它只循环了两次,似乎 scanf 干扰了循环。
标准输入:
test
test
标准输出:
7631717
有没有办法将输入/来自标准输入的每一行动态存储到没有固定大小/长度的char 变量中?
【问题讨论】:
-
始终检查成功扫描的项目数。也就是说,您必须检查 scanf 的返回值。总是。如果对 scanf 的调用不在作业的 RHS 上,则这是一个错误。
-
除非在
while ( scanf(...) == ...这样的情况下,所以我声称自己处于任务的右侧是夸张的。但是你必须检查返回值!
标签: c loops for-loop input scanf