Đây là code bài Thisinh với TestThisinh của mình , tạm thời mình không đề cập hết cả solution bởi mình khá chắc là đoạn code đó đúng , duy chỉ có chỗ cin.ignore() này hơi bị cái vấn đề là xóa kí tự đầu tiên nhập vào, mình thay bằng fflush nhập được nhưng chạy đến chỗ Nhập danh sách thí sinh : Nhập số lượng thí sinh là bắt đầu bị bỏ qua kí tự , làm nhập họ tên và mã số dính liền luôn , mong các cao nhân chỉ bảo:
Hỏi về lỗi bị xóa thông tin nhập vào kiểu string khi cin
Đăng hẳn code lên cho mọi người nhìn!! Nhớ Markdown code nhé!
đem cái cin.ignore() xuống cuối cùng.
chỗ bạn cần gọi cin.ignore() là ở giữa cin >> và getline(cin, ...)
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
thì phải chèn cin.ignore vào như thế này:
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin.ignore(100, '\n');
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin.ignore(100, '\n');
getline(cin, ...)
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin >> ...
cin.ignore(100, '\n');
hoặc ngay sau khi cin >> … thì thêm cin.ignore vào
getline(cin, ...)
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
cin >> ...
cin.ignore(100, '\n');
đương nhiên là dài và ko cần thiết hơn :V
3 Likes
https://en.cppreference.com/w/cpp/io/basic_istream/ignore
cin.ignore() sẽ ăn mất 1 char (vô điều kiện) 
Để không bị trôi khi chuyển từ nhập số qua chuỗi thì phải bỏ qua ‘\n’ (enter) nên viết cin.ignore(100, '\n');
đúng nhất là thay 100 bằng max cái gì đó.
3 Likes
Tạm thời thì code chạy đúng rồi, mà còn hơi lũng cũng chỗ phải input và enter 2 lần mới được. Dù sao code chạy đúng là được rồi. Cảm ơn 2 bạn rất nhiều.
Duplicate post has been moved by noname00
1 Like


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