输入流迭代器和异常

2024-02-07

几天前,我正在研究 istream 迭代器和异常处理,我对此感到好奇:

#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>

using namespace std;

int main(int argc, char* argv[])
{
   if (argc < 2) {
      cout << argv[0] << " <file>" << endl;
      return -1;
   }

   try {
      ifstream ifs(argv[1]);
      ifs.exceptions(ios::failbit | ios::badbit);
      istream_iterator<string> iss(ifs), iss_end;
      copy(iss, iss_end, ostream_iterator<string>(cout, "\n"));
   }
   catch (const ios_base::failure& e) {
      cerr << e.what() << endl;
      return -2;
   }

   return 0;
}

为什么在读取输入文件的最后一个字后总是引发失败位异常?


failbit每当读取操作无法提取任何字符时设置,无论这是因为它是否到达 EOF。

stringstream ss ("foo");
string s;
int i;

ss >> i; // sets failbit because there is no number in the stream
ss.clear();
ss >> s; // sets eofbit because EOF is hit
ss.clear();
ss >> s; // sets eofbit and failbit because EOF is hit and nothing is extracted.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

输入流迭代器和异常 的相关文章

  • 分段错误(核心转储)错误

    我的程序编译罚款 但在输入文件时出现 分段错误 核心转储 错误 我没有正确处理 ostream 吗 include
  • 将字节数组转换为托管结构

    更新 这个问题的答案帮助我编写了开源项目GitHub 上的 AlicanC 现代战争 2 工具 https github com AlicanC AlicanC s Modern Warfare 2 Tool 你可以看到我是如何阅读这些数据
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • 如何尝试/捕获所有异常

    我正在完成由其他人启动的 UWP 应用程序 该应用程序经常崩溃 我总是陷入困境应用程序 at if global System Diagnostics Debugger IsAttached global System Diagnostic
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • 获取尚未实例化的类的函数句柄

    我对 C 相当陌生 我想做的事情可能看起来很复杂 首先 我想获取一些函数的句柄以便稍后执行它们 我知道我可以通过以下方式实现这一目标 List
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • C++ 错误 - “成员初始值设定项表达式列表被视为复合表达式”

    我收到一个我不熟悉的 C 编译器错误 可能是一个非常愚蠢的错误 但我不能完全指出它 Error test cpp 27 error member initializer expression list treated as compound
  • 为什么具有相同名称但不同签名的多个继承函数不会被视为重载函数?

    以下代码片段在编译期间产生 对 foo 的调用不明确 错误 我想知道是否有任何方法可以解决此问题而不完全限定对 foo 的调用 include
  • C# 中的常量和只读? [复制]

    这个问题在这里已经有答案了 可能的重复 const 和 readonly 之间有什么区别 https stackoverflow com questions 55984 what is the difference between cons
  • 如何随着分辨率的变化自动调整大小和调整表单控件

    我注意到某些应用程序会更改控件的位置以尽可能适应当前的分辨率 例如 如果窗口最大化 则控件的设置方式应使整个 GUI 看起来平衡 是否可以使用 C 在 Visual studio 2010 中制作或实现此功能 Use Dock http m
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • 初始化 LPCTSTR /LPCWSTR [重复]

    这个问题在这里已经有答案了 我很难理解并使其正常工作 基本上归结为我无法成功初始化这种类型的变量 它需要有说的内容7 2E25DC9D 0 USB003 有人可以解释 展示这种类型的正确初始化和类似的值吗 我已查看此站点上的所有帮助 将项目
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 受限 AppDomain 中的代码访问安全异常

    Goal 我需要在权限非常有限的 AppDomain 中运行一些代码 它不应该访问任何花哨或不安全的内容 except对于我在其他地方定义的一些辅助方法 我做了什么 我正在创建一个具有所需基本权限的沙箱 AppDomain 并创建一个运行代
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题

随机推荐

  • 如何在 Wicket 中返回外部 URL 的链接?

    我有一个带有表单的网络应用程序 当我单击保存时 应用程序会创建一些文件并返回一些网址 如何在网页上显示此网址 Use ExternalLink 普通静态链接 new ExternalLink link http some url This
  • Template模板参数,为什么class强制?

    如果我写的话 标题几乎说明了一切 vvvvv template
  • 如何在 libcurl 中使用成员函数指针

    我正在使用 libcurl 我在类中下载文件 我想查看其中的进度函数 我注意到我可以通过设置一个典型的函数指针 curl easy setopt mCurl CURLOPT PROGRESSFUNCTION progress func3 但
  • Laravel - 工匠不工作

    我知道其他问题在那里 https stackoverflow com questions 18910502 laravel artisan command not working 但它们与我的情况不同 我安装了自己的 laravel 的新副
  • 汇总错误:node_modules/react-is/index.js 未导出“isValidElementType”

    我正在使用样式组件构建一个带有 rollUp 的捆绑包 我的 rollup config js 如下所示 import resolve from rollup plugin node resolve import babel from ro
  • 应用程序的强名称验证失败

    我制作了一个使用 C Program Files x86 Reference Assemblies Microsoft WindowsPowerShell 3 0 System Management Automation dll 的 C 应
  • Angular 5:如何上传图像[重复]

    这个问题在这里已经有答案了 我正在使用 Angular 5 我有一个需求 需要在页面上上传图片并显示该图片 有没有 Angular 5 标签或 html 标签可以做到这一点 我附上了它的屏幕截图 用户单击 上传 按钮 应该会出现一个弹出窗口
  • 就地执行 numpy exp 函数

    如标题所示 我需要执行numpy exp在一个非常大的 ndarray 上 比方说ar 并将结果存储在ar本身 这个操作可以就地进行吗 您可以使用可选的out的论证exp a np array 3 4 5 res np exp a a pr
  • 管理多个 Twisted 客户端连接

    我正在尝试在一种管理多个客户端连接的蜘蛛程序中使用 Twisted 我想维持一组大约 5 个同时工作的客户 每个客户端的功能是连接到从列表中获取的指定 IRC 服务器 进入特定频道 然后将该频道中的用户列表保存到数据库中 我遇到的问题更多的
  • 从 Flutter 应用程序访问 ExpoSecureStore 存储的钥匙串值 [iOS]

    我有一个 React Native 应用程序 仅针对 iOS 发布 它使用曝光安全存储 https docs expo io versions latest sdk securestore 从 iOS 钥匙串中写入和读取值 我正在过渡到 F
  • 创建自定义 XML 数据类型?

    有没有办法为 Android 创建自定义 XML 数据类型 我有课Model其中包含我的实体的所有统计数据 我希望能够充气Model与 xml 中的类类似 嗯 就像视图一样 这可能吗 Example
  • Pandas UDF 不比 Spark UDF 快吗? [复制]

    这个问题在这里已经有答案了 我从 Pyspark 网站获取了以下 UDF 因为我试图了解是否有性能改进 我制作了很大范围的数字 但两者花费的时间几乎相同 我做错了什么 Thanks import pandas as pd from pysp
  • Fortran:将任意“结构”传递给模块子例程

    我正在尝试编写一个通用子例程以实现最小化 由于我想要一个通用的子例程 目标函数可以有不同的参数 不仅在名称上 而且在维度上 所以我需要一种方法来传递该参数结构 我使用 结构 一词 因为我的想法是使用类似于 Matlab 中的结构类型变量的东
  • Scala 2 隐式和 Scala 3 给定/使用之间的区别

    两者有什么区别implicitScala 2 中的关键字和given using在 Scala 3 中 难道只是这样吗implicit已被分成两个关键字 或者语义也不同 如果是 如何 在大多数情况下 它们是相同的 然而 implicit不再
  • 使用 url 中的 javascript 更改框架属性

    我想根据 URL 使用 javascript 更改 iframe 的大小 我的意思是 如果网址是 mywebpage com example html width 800 height 450 iframe 是 看到 iframe 中的宽度
  • ASM字节码工程库中MethodVisitor类的visitLocalVariable()方法是做什么的?

    我在应用程序中使用 ASM 第一次 来创建 Java 类文件 这是我正在编写的编译器的后端 我阅读了 ASM 文档的相关部分 并对堆栈映射框架有疑问 ASM 表示 如果使用适当的标志初始化类编写器 它可以自动计算这些帧 我的问题是 这是否意
  • 如此透明,我无法捕捉到它...使用 Rghost 模拟 Ghostscript 命令,就像在虚拟打印机上一样

    作为一个红宝石新手 我一直在寻找幽灵 你可能会有所帮助 我读了很多书 并被告知对付这些鬼鬼祟祟的家伙的最好方法是使用脚本 ghostscript 我正在尝试执行在虚拟打印机中运行的 Ghostscript 命令 但在 ruby 鞋子 文件的
  • 将大型 DataFrame 输出到 CSV 文件的最快方法是什么?

    对于 python pandas 我发现 df to csv fname 的工作速度约为每分钟 1 百万行 有时我可以将性能提高 7 倍 如下所示 def df2csv df fname myformats sep function is
  • Task.Convert 扩展方法有用还是有隐患?

    我正在为 Google Cloud API 编写客户端库 该库具有相当常见的异步帮助器重载模式 做一些简短的同步工作来设置请求 发出异步请求 以简单的方式转换结果 目前我们正在使用异步方法 但是 就优先级而言 转换await的结果最终会很烦
  • 输入流迭代器和异常

    几天前 我正在研究 istream 迭代器和异常处理 我对此感到好奇 include