Lỗi Trôi lệnh khi nhập xuất xâu và số bằng File trong C.
• Khi nhập/xuất từ file: Số nguyên và Xâu kí tự.
–Cần xử dụng các Hàm:
•
•
–Tuy nhiên, Giống như trong nhập xuất từ bàn phím, với một xâu và số liên tiếp, Hiện tượng trôi lệnh xảy ra, yêu cầu phải khắc phục.
với nhập xuất từ bàn phím, ta sử dụng
với nhập xuất từ bàn phím, ta sử dụng
fflush (stdin); để khắc phục tình trạng trên. Tuy nhiên, với nhập/xuất bằng File, thì không thể làm được. Bởi vậy cần dùng 1 thủ thuật mới.
Lấy một ví dụ để dễ dàng hình dung:
Lấy một ví dụ để dễ dàng hình dung:
Với ví dụ trên, có thể nhiều người sẽ code như sau:
Kết quả khi chạy code cho thấy: Xâu MaSV không có giá trị, Tên sinh viên thì lại là Mã sinh viên
kết quả chạy codeNguyên nhân của hiện tượng này như sau:
khi mới bắt đầu con trỏ đọc/ghi file ở vị trí 0, chuẩn bị cho yêu cầu.
khi có yêu cầu từ mã lệnh, con trỏ lùi lại một kí tự cho đến khi gặp dấu trắng hoặc kí tự "\0" đọc kí tự phía trước nó ( số 4 ). Đồng thời kết thúc câu lệnh.
Và lúc này dòng lệnh tiếp theo được thực hiện. tuy nhiên gặp kí tự "\0" nó kết thúc câu lệnh mà thông tin thì chưa được nhập.
Dòng Lệnh tiêp theo, xâu: TenSV lúc này nhập vào thông tin của Mã sinh viên.
Chính bởi vậy, cần phải thêm 1 lệnh nhập Mã sinh viên để trình tự nhập được chính xác.
Mọi thắc mắc xin để lại bình luận bên dưới.
This comment has been removed by the author.
ReplyDelete