0

我在测试 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 并关闭。只是好奇是怎么回事。

4

1 回答 1

1

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

如果您希望下一个 cin.get() 工作,必须首先调用 cin.clear() 以清除故障位。

附言。在这里查看详细说明。

于 2012-07-23T03:26:52.610 回答