더북(TheBook)

모든 동작을 잘 진행했는지 확인하려면 원칙적으로 각 I/O 작업 후에 오류 플래그를 확인해야 한다. 다음 프로그램은 파일을 열 때까지 사용자에게 새 파일 이름을 묻는다. 파일의 내용을 읽은 후, 다시 성공 여부를 확인한다.

int main()
{
    std::ifstream infile;
    std::string filename("some_missing_file.xyz");
    bool opened = false;
    while (!opened) {
        infile.open(filename);
        if (infile.good()) {
            opened = true;
        } else {
            std::cout << "The file ‘" << filename
                    << "’ doesnt exist, give a new file name: ";
            std::cin >> filename;
        }
    }
    int i;
    double d;
    infile >> i >> d;
    if (infile.good())
        std::cout << "i is " << i << ", d is " << d << ‘\n;
    else
        std::cout << "Could not correctly read the content.\n";
    infile.close();
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.