C编程:whilef循环中的Scanf只读取输入一次然后终止

时间:2014-10-01 17:53:51

标签: c while-loop char character scanf

我是C编程的新手,我目前正在学习while循环。我遇到的问题是,while循环必须继续,直到用户希望终止while循环。但是当我运行我的代码时,似乎只有scanf()一次扫描输入,while循环后来终止,我不知道为什么。

int main(void) {
    setbuf(stdout, NULL);
    char answer = 'y';
    while (answer == 'y') {
        printf("continue? (y/n): ");
        scanf("%c", &answer);
    }
    return 0;
}

2 个答案:

答案 0 :(得分:0)

y以外的每个字符都会终止循环。如果您点击y<newline>y将导致循环再次运行,然后换行将终止循环。

基本问题是当你真正想要读一行时,你正在读一个字符。

答案 1 :(得分:0)

您需要使用换行符。

更改

scanf("%c", &answer);

scanf(" %c", &answer);