首页 > 解决方案 > 如何在(cin >> num)时中断cin输入?

问题描述

我想中断输入 num while(cin >> num) ;。

当我输入ctrl+D中断输入时,程序将打印input a: eof flag

#include <iostream>

using namespace std;

int main()
{
    int num;
    while(1) {
        while(cin >> num);

        if (cin.eof()) {
            cout <<"eof flag" << endl;
            cin.clear();
            cin.ignore(std::numeric_limits<std::streamsize>::max());
        }
        if (cin.fail()) {
            cout <<"fail flag" << endl;
            cin.clear();
            cin.ignore(std::numeric_limits<std::streamsize>::max());
        }
        cout <<"input a: ";
        int a;
        cin >> a;
    }
}

cin 流似乎总是有 EOF。为什么会这样?

标签: c++

解决方案


推荐阅读