我是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;
}
答案 0 :(得分:0)
y
以外的每个字符都会终止循环。如果您点击y<newline>
,y
将导致循环再次运行,然后换行将终止循环。
基本问题是当你真正想要读一行时,你正在读一个字符。
答案 1 :(得分:0)
您需要使用换行符。
更改
scanf("%c", &answer);
到
scanf(" %c", &answer);