好的伙计们,我已经尝试了我能想到的一切。我正在将文件名传入此函数。一个小上下文:hash_table是一个已经初始化和填充的带有密钥对的向量,该对的“值”部分是一个具有字段“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;
}
}
答案 0 :(得分:1)
你几乎肯定会检查错误的文件。请记住,相对路径是相对于进程的工作目录的,这不一定与可执行文件在磁盘上的位置相同。
答案 1 :(得分:0)
我通过控制台编译并运行它,现在它可以工作,没有编辑。看来我的IDE并不喜欢代码中的东西。无论如何,谢谢大家的回应。