C ++:在使用cin.ignore之前,我是否需要使用cin.get()?

时间:2011-03-28 08:04:40

标签: c++ cin

如果我只是通过流使用标准cin,cin.ignore(100,'\n')是否有效?

示例:

cin >> temp;  //enter key input
if(cin.fail())
{
  cin.clear();
  cin.ignore(100,'\n');
}

还是我必须使用cin.get()?

示例:

temp=cin.get();
if(cin.fail())
{
  cin.clear();
  cin.ignore(100,'\n');
}

或者这些代码会产生相同的结果吗?

1 个答案:

答案 0 :(得分:0)

啊,愚蠢的我,我做了一个函数来打电话给结算

void clear()
{
  cin.clear();
  cin.ignore(100,'\n');
}

在我的程序中,它不止一次调用函数clear()。在没有来自cin的输入的情况下连续两次调用clear()的情况下,它提示输入一个空行。

我猜这是造成它的原因。