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ả
Nhập chuỗi bị trôi
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.
1 Like
cin.ignore();
student = new string[numStudents];
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ỏ.
1 Like
Ôi mình lạc hậu quá rồi, cảm ơn bạn khai sáng :)))


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?