It will not. Because scanf
reads the \n
character on second iteration which cause the loop to terminate. Place a space before %c
to consume this \n
character left behind by previous scanf
.
scanf(" %c",&c);
質問
#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');
}
解決
It will not. Because scanf
reads the \n
character on second iteration which cause the loop to terminate. Place a space before %c
to consume this \n
character left behind by previous scanf
.
scanf(" %c",&c);
他のヒント
Try adding a space before %c
which is a scanf quirk. The space absorbs the newline char after typing the 'y'.
scanf(" %c",&c);