无法写入可执行文件当前目录中的文件夹
Cannot write to a folder within the exectuable's current directory
我有一个程序正在尝试写入各种文件。为了清理它,我想将这些文件放入一个目录中。我的程序 运行 位于与 VS 2012 的 sln 不同的目录中,即 exe 是目录中 VS 文件的唯一部分。如果我只是打印文件,那很好,但如果我试图将这些相同的文件打印到不同的目录,那么它什么也做不了。我打印出我试图访问的目录,并且得到“000000”作为响应。代码如下:
std::ofstream output
output.open("\myFiles\entityOutput.csv", std::ios::app);
output << "print some stuff here" << std::endl;
我确定这很简单,但我一直无法弄清楚是什么。尝试过“\\myFiles.....”已经是“/myFiles”等。我也在 Windows 7 系统上。
这是因为,在打开文件时,您需要将 \
替换为 \
或 /
。原因是 \
字符被认为是一种特殊字符,例如用于表示行尾字符 (\n
)。
只需交换 output.open("\myFiles\entityOutput.csv", std::ios::app);
到 output.open("/myFiles/entityOutput.csv", std::ios::app);
,
但是请确保路径也正确!
通常首先检查文件打开是否成功是一个很好的编程习惯。
我有一个程序正在尝试写入各种文件。为了清理它,我想将这些文件放入一个目录中。我的程序 运行 位于与 VS 2012 的 sln 不同的目录中,即 exe 是目录中 VS 文件的唯一部分。如果我只是打印文件,那很好,但如果我试图将这些相同的文件打印到不同的目录,那么它什么也做不了。我打印出我试图访问的目录,并且得到“000000”作为响应。代码如下:
std::ofstream output
output.open("\myFiles\entityOutput.csv", std::ios::app);
output << "print some stuff here" << std::endl;
我确定这很简单,但我一直无法弄清楚是什么。尝试过“\\myFiles.....”已经是“/myFiles”等。我也在 Windows 7 系统上。
这是因为,在打开文件时,您需要将 \
替换为 \
或 /
。原因是 \
字符被认为是一种特殊字符,例如用于表示行尾字符 (\n
)。
只需交换 output.open("\myFiles\entityOutput.csv", std::ios::app);
到 output.open("/myFiles/entityOutput.csv", std::ios::app);
,
但是请确保路径也正确!
通常首先检查文件打开是否成功是一个很好的编程习惯。