为什么这个循环只执行4次?

时间:2017-07-03 06:03:37

标签: c

我是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;
}

2 个答案:

答案 0 :(得分:3)

因为当键盘给出任何输入时我们需要按回车确认输入完成。此输入保留在缓冲区中,如果下一个输入是char或string,则存储在string或char var中输入,不要等待输入该char或字符串。在这种情况下,在执行时给出的第一个输入它将char存储在X [0]中并输入x [1],依此类推。所以执行循环8时间,但似乎是4次,因为它只要求输入四次。检查是否将一个printf放入循环

答案 1 :(得分:1)

执行8次。 每当您按Enter键提交时,您输入的空白​​字符就会消耗掉一个循环迭代。