捕获istream忽略的(eof-)异常
Catching (eof-)exception of istream ignore
我遇到了一个小问题。我想跳过文件中的一些行。我正在使用
for(int i=0; i < ln -1; ++i)
{
ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'n');
}
在cplusplus.com上写着,如果达到eof, ignore将抛出异常。但是我不能用试/接的方法得到它。我做错了什么?还是我读错了什么?
我需要的是,如果达到eof,我想再次从第一行开始执行一些操作。
所以我尝试了某事,但它没有工作:
for(int i=0; i < ln -1; ++i)
{
try
{
ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'n');
}
catch(exception e)
{
if(ifFile.eof())
{
ifFile.clear(ifFile.eofbit);
ifFile.seekg(std::ios::beg);
_readCounter.currLine = 1;
}
}
}
但是没有遇到catch()
如果有问题,请提出来。
纠正:
for(int i=0; i < ln; i++)
{
if(ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'n').eof())
{
ifFile.clear(ifFile.eofbit);
ifFile.seekg(std::ios::beg);
}
}
调用ignore()
后检查eof()
:
if (f.ignore(std::numeric_limits<std::streamsize>::max(), 'n').eof()) {
// end of file was found
}
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何将strftime中的格式错误作为异常捕获
- 创建具有 new in 函数和"this is nullptr"异常的对象
- fstream EOF异常抛出
- Std::istream不会抛出eof异常(已启用)
- 捕获istream忽略的(eof-)异常
- c++ fstream:当到达eof时抛出异常