我的問題是,如果發生錯誤,我不能重置cin
的流。例如,如果我在輸入一個字符串時需要一個int,並且如果我清除了該流,那麼在下一次循環時,我仍然會達到cin.fail()-if
。C++:cin.clear()不重置流
任何幫助?
我的代碼如下:
int main()
{
int i;
while(cin>>i,!cin.eof())
{
if(cin.fail())
{
cin.clear();
continue;
}
cout<<i<<endl;
}
system("pause");
}
BTW:有關信息,我使用的Visual Studio作爲一個IDE。
你不需要'!cin.eof()'在你的循環表達式中,因爲'>>'操作符返回流,它可以在布爾中使用表達式。 –
@JoachimPileborg除了在這裏,他只想循環,如果錯誤是不是由於EOF。 –