无论尝试什么解决方案,ofstream/fstream都不会起作用

ofstream/fstream simply will not work, no matter what solution is tried

本文关键字:fstream 起作用 ofstream 什么 解决方案      更新时间:2023-10-16

好吧,伙计们,我已经试过了我能想到的一切。我正在将一个文件名传递给这个函数。一个小上下文:hash_table是一个已经初始化并填充了键对的向量,而键对的"value"部分是一个具有字段"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;
 }

}

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

我通过控制台编译并运行了它,现在它可以工作了,没有进行任何编辑。我的IDE似乎不喜欢代码中的某些内容。无论如何,感谢大家的回复。s