在 Ctrl+Z (EOF) 之后从 iostream::cin 恢复读取?("ignore"不起作用)



为什么当我们只为内部循环提供 ctrl+z 时,以下程序中的外部循环会终止?

#include<iostream>
int main()
{
    string s1,s2;
    while(cin >> s1)
    {
        cout<<"In loop1n";
        while(cin>>s2)
            cout<<"In loop 2n";
        cin.ignore();
    }
}

按 Ctrl+z(在 Windows 上)关闭标准输入流。关闭后,它将保持关闭状态。一旦内部循环完成,它就不会神奇地重新打开。只是没有理由会这样做。

Ctrl-Z 将 cin 置于错误状态,因此 cin.ignore 现在不会。试试辛。清除() 代替。

相关内容

最新更新