c++ - ofstream/fstream 根本行不通,无论尝试什么解决方案

标签 c++ fstream flush fclose

好的,我已经尝试了所有我能想到的方法。我将文件名传递给此函数。一点上下文:hash_table 是一个已经初始化并填充了键对的 vector ,键对的“值”部分是一个具有字段“bucket_size”的链表。当我使用 cout 检查这些字段是否实际被访问时,它们是;甚至调试器也将它们列为已归档到输出流中。我在那里有 flush() 和 close(),但它没有向文件写入任何内容。返回 true,表示流中没有错误。有人有想法吗?

 string line;
 std::ofstream ofs;
 if(ofs.is_open())
     ofs.close();
 ofs.open(filename);
 if (ofs.is_open())
 {
     cout << "File Opened" << endl;
     for (double i = 0; i < hash_table.capacity(); ++i)
     {
         ofs << "Bucket Number " << i;
         if (hash_table[i].value != NULL)
             ofs << " Bucket Size: " << hash_table[i].value->bucket_size << endl;
         else
             ofs << " Bucket Size: 0" << endl;
         ofs.flush();
     }
     cout << "closing file stream" << endl;
     ofs.flush();
 ofs.close();
 if (ofs.good())
         return true;
     else
         return false;
 }
 else
 {
 cout << "File not opened" << endl;
 return false;
 }

}

最佳答案

您几乎可以肯定检查了错误的文件。请记住,相对路径是相对于进程的工作目录而言的,这不一定与可执行文件在磁盘上的位置相同。

关于c++ - ofstream/fstream 根本行不通,无论尝试什么解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22995356/

相关文章:

c++ - 指向 vector 第一个字节的指针 <float>

c++ - 需要从 C++ 中的派生类调用基本析构函数方法?

c++ - 流 >> 读取最后一行两次

hibernate - 我们什么时候使用 hibernate 的 session 刷新来对抗 setComplete()

java - 刷新 header 后,在 Java 中的响应中添加 cookie?

c++ - 依赖初始化顺序

C++ : problem when trying to create an instance

c++ - 如何不覆盖文件,C++ 日志记录

c++ - 在尝试读取仅为输出而打开的文件时,为流设置了 eofbit 标志。这是为什么?

python 输入设备fflush