c++ - istream_iterator 复制示例一直在等待输入
问题描述
我尝试从“C++ 标准库”的第 107 页实现流迭代器的示例。我被困在这条线上:
copy (istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(coll));
程序在这里一直从控制台读取数据,但不会传递到下一行。我如何继续超越这一点?
解决方案
默认构造
std::istream_iterator
的称为 end-of-stream迭代器。当有效值std::istream_iterator
到达底层流的末尾时,它就等于流结束 迭代器。取消引用或增加它会进一步调用未定义的行为
加粗
换句话说,std::istream_iterator<string>(std::cin)
一直持续到输入结束std::cin
。这不会发生在行尾,而是发生在文件末尾。在控制台中,有特定的命令可以触发 EOF:
在 UNIX 系统中是Ctrl+ D,在 Windows 中是Ctrl+ Z。
推荐阅读
- scala - akka http mock(授权)指令
- javascript - 是否可以为 webapp 提供浏览器包装器?
- reactjs - 搜索并获取有关 ReactJs 中每个值的信息
- python - 如何在进程之间共享多维数组?
- javascript - AJAX 按钮消失
- javascript - 隐藏弹出框功能恢复打开的弹出框功能
- intellij-idea - 寻找类似 VS Code Remote Dev Extension Pack 的 IntelliJ Remote Dev 体验
- neo4j - 将比特币区块链导入neo4j - 错误:缺少必需选项'--nodes = [
- woocommerce - 每个客户的 WooCommerce 邮政编码定价
- google-cloud-platform - 似乎无法在我的自定义预测器类代码中导入我的 Pytorch 模型架构类,以便在 AI Platform 上进行自定义管道部署