小编nul*_*ter的帖子

输入流迭代器和异常

几天前,我正在研究 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;
}
Run Code Online (Sandbox Code Playgroud)

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

c++ iterator exception istream

5
推荐指数
1
解决办法
1625
查看次数

标签 统计

c++ ×1

exception ×1

istream ×1

iterator ×1