簡體   English   中英

在Ctrl + Z(EOF)后繼續從iostream :: cin讀取? (“忽略”不起作用)

[英]Resume reading from iostream::cin after Ctrl+Z (EOF)? (“ignore” doesn't work)

當我們僅為內循環提供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();
    }
}

按Ctrl + z(在Windows上)關閉標准輸入流。 一旦關閉,它就會保持關閉狀態。 內環完成后,它不會神奇地重新打開。 它沒有理由。

Ctrl-Z將cin置於錯誤狀態,因此cin.ignore會執行此操作。 嘗試cin.Clear()代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM