获得更好的iostream错误消息

| 我实现了一个小程序,可以提取(并通过保险丝安装)某种存档格式。我使用``0'',但是出现错误(例如,用户要提取的文件不存在),我收到了非常难以描述的错误消息。我想知道是否有办法针对C ++中与IO相关的问题获得更好的错误消息? 在相关说明中,我想知道是否应该使用C \的
FILE*
,还是在保险丝文件系统中仅使用普通文件描述符?因为ѭ2than比iostream给我的要好得多。     
已邀请:
除了使用boost :: iostreams并实现我们自己的基于文件的接收器和源代码,我们找不到其他更好的方法。 如果需要,可以在此处获取源代码(Apache许可): http://sourceforge.net/projects/cgatools/files/1.3.0/cgatools-1.3.0.9-source.tar.gz/download 相关文件为: cgatools / util / Streams。[ch] pp     
由于仍然使用文件系统库,因此在尝试使用流访问文件之前,可以测试文件是否存在。这样可以避免您的膨胀问题,但是它的运行方式与您要查找的含义不同,即流本身不会执行存在性检查。 但是,由于您正在使用
boost::filesystem::ifstream
,因此我假设您正在使用它,因为您正在使用using4ѭ。在boost5的实现中,它们继承自6并重写了两个函数:构造函数和7。因此,如果您想要更好的错误报告,您可以简单地做同样的事情,从boost \的实现中继承并重写这两个函数以提供所需的检查。额外的膨胀:可能不会很多,它会将您希望的行为合并到流本身中。     

要回复问题请先登录注册