C++ fstream 混淆

Posted

技术标签:

【中文标题】C++ fstream 混淆【英文标题】:C++ fstream confusion 【发布时间】:2015-06-20 16:58:19 【问题描述】:

我有一个程序,在整个过程中多次使用 fstream 保存到文件。它在 microsoft vs 中运行时完美运行,但是当我编译一个版本并将 .exe 带到我的桌面时,它不会写入那里的任何文件。

ofstream save;
save.open("Data\\options.scav");
/*Write stuff to file*/

这在 Visual Studio 中运行良好,但如果我将它带到我的桌面,甚至为它创建 Data 文件夹,它就不会写入。任何帮助将不胜感激。

【问题讨论】:

去掉Data\\是否有效? @AngusComber 是的,确实如此。 那你就知道原因了。如果 Data 文件夹不存在,请创建它。 @AngusComber 是的,我想是的,谢谢,已修复。如果您作为答案发布,我会加注星标。 【参考方案1】:

您不能写入尚未创建的路径。

这样做:

// check Data folder exists
ofstream save;
save.open("Data\\options.scav");

请注意,出于可移植性原因,您也可以这样做(在 Windows 或 Unix 上):

// check Data folder exists
ofstream save;
save.open("Data/options.scav");

【讨论】:

以上是关于C++ fstream 混淆的主要内容,如果未能解决你的问题,请参考以下文章

C++文件流的C++ 中 *fstream 操作

C++(八):fstream读写操作

C++中fstream

c++ fstream 的问题

c++程序中,iostream可以被fstream代替吗

C++文件读写详解(ofstream,ifstream,fstream)