文件无法打开进行写入

File won't open for writing

本文关键字:文件      更新时间:2023-10-16

我试图将数据结构的内容写入文件,但由于某种原因,file.is_open()返回false。我是不是错过了什么?正如我用cout测试的那样,打印应该很好。

std::ofstream file;
file.open(filename, std::ofstream::out | std::ofstream::trunc);
for(int i = 0; i < 1000; ++i) {
    Candy* tmp = index[i];
    for(; tmp; tmp = tmp->next){
        if(file.is_open()){
            file << tmp->ID << ";" << tmp->amount << ";" << tmp->location <<
        }
        else{
            std::cout << "error" << std::endl;
        }
    }
    file.close();
}

可能是你的大括号不匹配吗?您永远不会在第一个for循环的范围之外关闭,所以您在循环的第一次迭代中关闭文件。

您是否具有写入文件路径的正确权限?文件的路径是否确实存在?

您可以查看errno以找出问题所在。

#include <cerrno>
std::cout << "File error: " << strerror( errno ) << std::endl;