Cho mình hỏi tại sao khi chạy đoạn chương trình sau thì xâu s bị mất 5 kí tự:
int main(){ string s; cin.ignore(5); getline(cin,s); cout << s <<endl; return 0; }
Cho mình hỏi tại sao khi chạy đoạn chương trình sau thì xâu s bị mất 5 kí tự:
int main(){ string s; cin.ignore(5); getline(cin,s); cout << s <<endl; return 0; }
cin.ignore(5) tự động bỏ qua 5 kí tự đầu tiên kể từ vị trí của con trỏ. Bỏ cin.ignore(5) đi là đọc được đủ xâu s. Ví dụ, bạn input helpmeplz thì stream bỏ qua helpm, lúc này con trỏ ở vị trí chữ e và lệnh getline đằng sau chỉ đọc từ chỗ con trỏ đến hết dòng, xâu s chỉ có eplz.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?