我写了这段代码,它接受一个整数 (t) 作为用户的输入。一个循环将只执行 't' 次。但我发现它运行了 (t-1)
次。例如,如果我输入 3
,它只会运行 2
次。谁能解释一下为什么会这样?
我尝试并使用了 scanf("%s", &str)
,它可以工作,但是我不能将字符串作为包含空格的输入。
#include <stdio.h>
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
char str[100];
gets(str);
printf("%s\n", str);
}
return 0;
}
最佳答案
scanf("%d", &t)
仅使用输入流中的数字并保留其余字符。当您输入数字并按回车键时,数字后会有一个换行符。
第一个 gets
读取此换行符并返回一个除换行符外为空的字符串。循环的第一次迭代打印此空行。
关于c - 这个循环会被执行多少次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21437760/