什么可以导致在ofsream :: open上设置failbit

时间:2018-01-31 22:28:06

标签: c++ ofstream

当我尝试使用ofstream :: open编写二进制文件时,failbit正在设置我无法写入文件,异常原因是“basic_ios :: clear”。这应该是如此简单,但我无法弄清楚我做错了什么。

chown

从xterm我可以触摸列出的文件名没有问题但是每当我尝试以编程方式创建它时它都会失败。

我试过这个

string fname ("/home/tim/data/kv.bin");

file.exceptions (std::ofstream::failbit | std::ofstream::badbit );

try
{
    file.open (fname, ios::binary);
}
catch (std::ofstream::failure e)
{
    string error (e.what());
}

它打开文件没有问题。我想我可以使用C文件指针来编写我的文件,但我希望使用我在其余代码中使用的C ++流保持一致。

无论如何都要找出为什么ofstream :: open失败以及如何修复它?

1 个答案:

答案 0 :(得分:0)

我明白了。我之前在我的函数中使用了ofstream,并且在尝试使用不同的文件名打开它之前没有关闭它。

对不起大家。