Tôi đang dựa vào lập trình C. Tôi đã viết một vòng lặp lẻ nhưng không hoạt động trong khi tôi sử dụng %c
trong scanf()
.
Đây là mã:Vòng lặp không hoạt động bằng% c
#include<stdio.h>
void main()
{
char another='y';
int num;
while (another =='y')
{
printf("Enter a number:\t");
scanf("%d", &num);
printf("Sqare of %d is : %d", num, num * num);
printf("\nWant to enter another number? y/n");
scanf("%c", &another);
}
}
Nhưng nếu tôi sử dụng %s
trong mã này, ví dụ scanf("%s", &another);
, sau đó nó hoạt động tốt.
Tại sao điều này xảy ra? Bất kỳ ý tưởng?
Khi bạn nhập 'num' và nhấn ENTER, vì vậy mã ascii của ENTER được lưu trong bộ đệm scanf và bất cứ khi nào bạn đọc ký tự đơn tiếp theo, nó sẽ không chờ đầu vào của người dùng và mã ASCII 'ENTER' sẽ được lưu trữ trong biến 'else' khác. –