#include <stdio.h>
int main(void) {
char c = 'y', temp;
printf("Press y\n");
do {
printf("Press y to continue\n"); // read y again and again
scanf("%c", &c); // y entered
printf("%c", c); // loop should repeat but doesn't repeat
} while(c == 'y');
}
答案 0 :(得分:4)
不会。因为scanf
在第二次迭代时读取\n
字符,导致循环终止。在%c
之前放置一个空格,以使用之前\n
留下的scanf
个字符。
scanf(" %c",&c);
答案 1 :(得分:2)
尝试在%c
之前添加一个空格,这是一个scanf怪癖。键入'y'后,空格会吸收换行符。
scanf(" %c",&c);