30/09/2018, 21:36
Sự khác biệt giữa %1s và %c trong C
Code 1:
int main()
{
int a;
printf("Enter the a = ");
scanf("%d", &a);
char characters[2];
printf("Enter the one characters: ");
scanf("%1s", characters);
}
Code 2:
int main()
{
int a;
printf("Enter the a = ");
scanf("%d", &a);
char characters[2];
printf("Enter the one characters: ");
scanf("%c", characters);
}
Cho em hỏi là hai đoạn code trên em đều cho nhập vào 1 kí tự nhưng sao ở đoạn code 1 thì không bị trôi lệnh (tức khi nhập a rồi Enter thì vẫn nhập tiếp ký tự được), còn đoạn code 2 thì nhập a xong Enter là nó kết thúc luôn ? Em đang thắc mắc, mong các anh chị giải thích hộ, em cảm ơn ạ
Bài liên quan
Sau khi
scanf("%d",&a)
thì trong buffer còn lại ký tự'\n'
. Code 1:scanf("%1s....)
sẽ bỏ qua những kí tự như khoảng trắng hay'\n'
nên không bị trôi ký tự. Code 2:scanf("%c...
sẽ đọc luôn'\n'
nên bị trôi ký tự. Bạn tham khảo thêm trong cuốn K&RCảm ơn @freedom nhé