2
我有一些基本的代码,在循环中运行并写入文件。它看起来沿着线:C++如果文件被删除,赶上
std::ofstream myFile;
myFile.open("file.txt", std::ofstream::out);
while (true)
{
if (myFile.is_open() && myFile.good())
{
myFile << "test" <<std::endl;
}
if (myFile.fail())
{
std::cout << "Error\n";
}
}
一切工作正常,如果我手动插入myFile.setstate(),并设置它失败的错误。
但是,如果我有程序写入循环中的文件,然后手动继续并删除文件...程序似乎继续写入文件,就好像它仍然存在。没有错误被抛出。我想可能使用flush()会工作,因为我期望它设置失败位,但行为似乎没有改变。我究竟做错了什么?
有没有办法检查文件突然丢失,而不诉诸再次尝试调用open()? (我试图避免.open()和.close()在循环中,而是在开始打开,然后让它关闭时,它超出了范围。)