为什么这个循环只执行4次?
问题描述:
我是c编程的初学者。我只是想知道为什么这个循环无法正常工作。为什么这个循环只执行4次?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char x[8];
char t;
for (i = 0; i < 8; i++) {
scanf("%c", &t);
x[i] = t;
}
return 0;
}
答
它执行8次。 无论何时按下回车键提交,您都会输入一个空白字符,它正在消耗您的一次循环迭代。
答
因为当从键盘输入任何输入时,我们需要按回车确认输入完成。这将进入缓冲区,如果下一个输入是字符或字符串,则存储输入字符串或char var,并且不要等待输入该字符或字符串。在这种情况下,执行时给出的第一个输入将char存储在X [0]中并输入到x [1]中,依此类推。所以执行循环8次,但似乎是4次,因为它只要求输入四次。检查将一个printf放入循环中
+0
非常感谢@ user8246589。 –
它执行8.空格也是字符。 – StoryTeller
@StoryTeller:8不是可执行文件! ;-) – alk
使用'scanf(“%c”,&t);'而不是'scanf(“%c”,&t);'。 – rsp