ở đây mình có 2 thắc mắc muốn hỏi các tiền bối
Thứ nhất mình có đoạn code sau ( lấy từ daynhauhoc )
#include <stdio.h>
int main()
{
char x;
nhaplai:
printf("\n\n\t\t *A*");
printf("\n\n\t\t *B*");
printf("nhap gia tri ");
scanf("%c", &x);
if(x =='g')
{
goto nhaplai;
}
getchar();
}
Nhập g lần thứ 2 thì sẽ dừng và được giải thích là do enter đã nhảy vào biến x của lần nhập thứ 2 dẫn đến != g và kết thúc.
Nhưng mình có đoạn code thứ 2 như sau :
#include<stdio.h>
main()
{
char x;
printf ("x la ");
do
scanf("%c",&x);
while(x=='g');
printf("....");
}
Nhập g và kết thúc luôn, được giải thích là do đối với lệnh scanf này khi đọc kí tự ,thì với kí tự xuống dòng được coi là hợp lệ nên dẫn đến != g nên kết thúc.
đoạn code thứ 2 mình giải thích dựa trên sách còn đoạn code thứ nhất mình giải thích dựa trên nguồn trong nhóm và mình băn khoăn nếu với 2 cách giải thích trên thì ta thấy rằng enter của code 1 thì sẽ ảnh hưởng đến giá trị thứ 2 còn enter của thứ code 2 thì ảnh hưởng đến giá trị thứ nhất. Tiền bối nào có thể giải thích giúp mình với. Mình xin cảm ơn.