01/10/2018, 16:51
Nhập chuỗi bị trôi
Mọi người cho mình hỏi ở Constructor của mình, tại sao khi nhập số sinh viên của lớp xong thì nó hiện ra 2 lần string "Please enter the student’s name: " ạ? Và cách troubleshoot là gì? Mình đã thữ dùng fflush(stdin); sau khi nhập số nhưng không hiệu quả
Bài liên quan
Câu này bỏ lâu rồi mà
Tức là bị kẹt một dấu ‘\n’ trong buffer, cái quái dị là khi lấy số thì bỏ qua mà lấy chuỗi thì nhận luôn dấu này kết thúc nhập (và ghi rỗng) nhận xong mới yêu cầu chuỗi thứ hai.
Vấn đề vậy mà mình lại không nghĩ ra, cảm ơn bạn rất nhiều.
Vậy giờ người ta dùng phương thức ignore() thay cho fflush() luôn rồi nhỉ?
Nói chung, nó nhận hết những gì còn lại trong buffer tới lúc ấy
Thực ra
fflush(stdin);
bị đặt ngoài vòng từ lâu rồi. Ngay cả POSIX cũng không cho, chỉ có VS cho dùng, nhưng 2014 bỏ.Ôi mình lạc hậu quá rồi, cảm ơn bạn khai sáng :)))