当只按下回车键时cin.get会发生什么?

时间:2012-07-23 02:59:44

标签: visual-c++ cin

我在测试cin.get是如何工作的时候尝试了不同的东西并且遇到了这个难题:

char input[5];
int value;

cout << "enter something:";
cin.get(input,5);
cout << input;

cin.ignore();
cin.get();  // this never fires with only enter

如果我输入内容,它将在最后一个cin.get暂停。如果我只是点击返回,它永远不会触发最后一个cin.get并关闭。只是好奇发生了什么。

1 个答案:

答案 0 :(得分:1)

如果cin.get()无法读取任何内容,它将设置failbit,因此下一个cin.get()也会失败。

如果你想让下一个cin.get()工作,必须首先调用cin.clear()来清除failbit。

PS。请查看here以获取详细说明。