01/10/2018, 11:58

Tại sao code này nó tự động bỏ qua phần nhập kí tự?

 int main ()
 {
     int luongcb;
     char loainv;
     printf("Nhap muc luong co ban:");
     scanf("%d",&luongcb);
     printf("
Nhap loai nhan vien:");
     scanf("%c",&loainv);
     printf("%c",loainv);
     return 0;
 }

Sau khi chạy chương trình nó chỉ cho mình nhập mức lương xong tự động hoàn thành chương trình luôn mà không cho nhập loại nhân viên.

Pham Van Hai viết 14:15 ngày 01/10/2018
Hi bạn, Do tất cả dữ liệu khi nhập vào máy tính sẽ được lưu trước trong vùng nhớ đệm stdin sau đó mới truyền giá trị vào cho từng biến thông qua lệnh gán scanf. Trong trường hợp bạn nhập dư dữ liệu, các giá trị còn tồn trên stdin sẽ được chuyển tiếp cho các lệnh gán tiếp theo. Đặc biệt, mỗi lần kết thúc lệnh nhập của bạn bằng phím enter đều lưu trên vùng nhớ đệm dưới dạng kí tự \n. Đối với kiểu số nguyên %d , lệnh scanf chỉ tra các giá trị có kiểu số nguyên nên sẽ bỏ qua kí tự \n. Do vậy,…
Bài liên quan
0