빠른 도보를 통해 :
이 생성자는 이미 파일 이름을 지정, 그래서 당신은 open
를 호출 할 필요가없는 경우 파일을 열고
ofstream f("reservedTables.DAT");
를 할당 스트림과 파일을 엽니 다 .
cin >> table;
사용자가 입력 한 내용을 읽습니다.
f.open("reservedTables.DAT", ios::out | ios::app);
파일을 다시 열려고 시도합니다. 실패 할 것이다.
f << table;
스트림은 페일 오픈 후에 실패 상태에 있으며 쓸 수 없습니다.
f.close();
파일을 닫습니다.
해결책
파일을 한 번 열고 오류를 확인하십시오.
ofstream f("reservedTables.DAT", ios::app); // no need for ios::out.
// Implied by o in ofstream
cin >> table;
if (f.is_open()) // make sure file opened before writing
{
if (!f << table) // make sure file wrote
{
std::cerr << "Oh snap. Failed write".
}
f.close(); // may not be needed. f will automatically close when it
// goes out of scope
}
else
{
std::cerr << "Oh snap. Failed open".
}
@ rRakete1111 그런 다음 열어 보지 않으면 글을 쓸 때 어떻게 추가합니까? 죄송합니다 나는 fstream을 많이 사용했고, 내가 아는 추가 메틀은 파일을 열 때입니다. – Roland
@Roland [constructor] (http://en.cppreference.com/w/cpp/io)를 보면/basic_ofstream/basic_ofstream) 두 번째 인수로 기본 모드를 허용한다는 것을 알 수 있습니다. – Rakete1111