为什么我们只为内循环提供ctrl + z时,以下程序中的外循环终止?
#include<iostream>
int main()
{
string s1,s2;
while(cin >> s1)
{
cout<<"In loop1\n";
while(cin>>s2)
cout<<"In loop 2\n";
cin.ignore();
}
}
答案 0 :(得分:7)
按Ctrl + z(在Windows上)关闭标准输入流。一旦关闭,它就会保持关闭状态。内环完成后,它不会神奇地重新打开。这没有理由。
答案 1 :(得分:3)
Ctrl-Z将cin置于错误状态,因此cin.ignore会执行此操作。 尝试cin.Clear()代替。