我现在正在教一个关于 cin 和 getline() 的课后俱乐部,我知道你应该在从 cin 和 getline 切换时放一个 cin.ignore() ;我也知道我们为什么要这样做,这都是有道理的。
但是.... 一个学生在 getline() 调用之后放置了 cin.ignore() 并且它仍然像他们将它放在 getline() 之前一样工作,有人知道为什么吗?
我教的和我知道的都是有效的。
string answer, line;
cin >> answer;
cin.ignore();
getline(cin, line);
即使 cin.ignore 在 getline() 之后,什么不应该起作用,但会起作用?
string answer, line;
cin >> answer;
getline(cin, line);
cin.ignore();