terminatehandler.cpp

来自「C++高级编程这本书所附的源代码」· C++ 代码 · 共 58 行

CPP
58
字号
#include <fstream>#include <iostream>#include <vector>#include <string>#include <stdexcept>#include <exception>using namespace std;void readIntegerFile(const string& fileName, vector<int>& dest){  ifstream istr;  int temp;  istr.open(fileName.c_str());  if (istr.fail()) {    // We failed to open the file: throw an exception    throw invalid_argument("");  }  // Read the integers one-by-one and add them to the vector  while (istr >> temp) {    dest.push_back(temp);  }  if (istr.eof()) {    // We reached the end-of-file.    istr.close();  } else {    // Some other error. Throw an exception    istr.close();    throw runtime_error("");  }}void myTerminate(){  cout << "Uncaught exception!\n";  exit(1);}int main(int argc, char** argv){  vector<int> myInts;  const string fileName = "IntegerFile.txt";  set_terminate(myTerminate);  readIntegerFile(fileName, myInts);  for (size_t i = 0; i < myInts.size(); i++) {    cerr << myInts[i] << " ";  }  cout << endl;  return (0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?