我在测试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并关闭。只是好奇发生了什么。
答案 0 :(得分:1)
如果cin.get()无法读取任何内容,它将设置failbit,因此下一个cin.get()也会失败。
如果你想让下一个cin.get()工作,必须首先调用cin.clear()来清除failbit。
PS。请查看here以获取详细说明。