01/10/2018, 09:33

Bị mất kí tự khi dùng cin.ignore()

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;
}
HK boy viết 11:44 ngày 01/10/2018

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.

Bài liên quan
0