我是c编程的初学者。我只是想知道为什么这个循环不能正常工作。
#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;
}
答案 0 :(得分:3)
因为当键盘给出任何输入时我们需要按回车确认输入完成。此输入保留在缓冲区中,如果下一个输入是char或string,则存储在string或char var中输入,不要等待输入该char或字符串。在这种情况下,在执行时给出的第一个输入它将char存储在X [0]中并输入x [1],依此类推。所以执行循环8时间,但似乎是4次,因为它只要求输入四次。检查是否将一个printf放入循环
答案 1 :(得分:1)
执行8次。 每当您按Enter键提交时,您输入的空白字符就会消耗掉一个循环迭代。