c++ - 如何在(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。为什么会这样?
解决方案
推荐阅读
- python - 在循环浏览目录时需要一些帮助来解决 Python 中的 DBF“找不到文件”错误?
- java - OpenGL filtering parameters and mipmap
- javascript - 如何安全地使用 setTimout 和 useEffect 中的 refs?
- javascript - 跨域请求被阻止:同源策略不允许在 javascript 中读取远程资源(原因:CORS 请求不是 http)
- elasticsearch - ELK - 在logstash中定义的日期在kibana中显示为字符串
- java - Android不调用第一种方法/跳过第一种方法
- javascript - 通过(PHP)从网页中提取 JavaScript 值
- spring - Thymeleaf th:onclick 事件 - 调用确认函数
- css - CSS li a:visited 覆盖移动设备上的悬停状态
- javascript - 在画布中创建随机形状