C++로 command line argument로 input filename, output filename을 string으로 받아
input file을 읽어서 적당한 가공을 하고 output file로 출력하는 프로그램을 짜고 있습니다.
지금 시도한 방법은 exception을 이용한 방법인데요, 코드가 이렇습니다:
====================
ifstream inputFile;
ofstream outputFile;
inputFile.exceptions( ifstream::failbit | ifstream::badbit );
try
{
// open file, do stuff
inputFile.open(inputFilename.c_str());
cout << "Input file opened" << endl;
outputFile.open(outputFilename.c_str());
cout << "Output file opened" << endl;
// ...
}
catch (const ifstream::failure &e)
{
cerr << "Failed to open input file" << endl;
}
====================
발견한 문제점이 몇 가지 있는데요,
첫째로 input file을 읽다가 eof가 나오면 exception이 뜹니다.
둘째로 output file을 같은 방식으로 exception 정의 내리면 open 하자마자 exception이 뜹니다.
그래서 이 방법이 아닌 다른 방법으로 에러 처리를 하고 싶은데,
어떻게 하는 것이 좋을까요?