为什么在这个函数中最后需要getchar()?我不明白为什么会这样

时间:2016-10-31 20:15:02

标签: c getchar

void getInputData(void) {
    char c = 0;
    while (c != 'x') {
        printf("Enter a letter:");
        fflush(stdout);
        c = getchar();
        printf("You entered: %c \n",c);
        fflush(stdout);
        getchar();
    }
    printf("\nYou entered x and the loop exited\n");
}

为什么此功能需要getchar()?我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

假设您在程序中使用行缓冲,每次跟随字母完美用户输入,直到点击' x':
牛逼\ n
^ h \ n
我的\ n
小号\ n
X \ n
仅当您从键盘按ENTER / RETURN键时,发送数据才有效。您应该处理\n换行符以获取下一个字符,这就是为什么必须使用getchar()