VSCode中ofstream无法创建文件,直接运行.exe程序正常
解决VSCode中fstream无法创建文件但直接运行exe正常的问题
问题现象
- 在VSCode里运行调试时,执行
std::ofstream file("empty.txt")不会在代码所在目录生成文件 - 直接双击生成的.exe程序,却能正常在exe所在目录创建
empty.txt
示例代码
#include <fstream> int main() { std::ofstream file("empty.txt"); }
环境信息
- 编辑器:Visual Studio Code
- 编译器:MinGW-w64 (MSYS2)
- 系统:Windows 10
问题原因
你的launch.json和tasks.json里把程序运行的工作目录(cwd)设置成了C:\\msys64\\mingw64\\bin,所以程序运行时会在这个目录下创建empty.txt,而不是你预期的代码所在目录。你可以去这个路径下查看,文件其实已经生成了。
解决方案
把两个配置文件里的cwd改成代码文件所在的目录,用VSCode的内置变量${fileDirname}即可:
- 修改
launch.json中的cwd字段:
"cwd": "${fileDirname}",
- 修改
tasks.json中options下的cwd字段:
"options": { "cwd": "${fileDirname}" },
修改完成后,在VSCode中运行程序,empty.txt就会生成在你的代码文件夹里了。如果需要固定路径,也可以直接写绝对路径(比如"D:\\MyProjects\\CppTest"),但用${fileDirname}更灵活,能适配不同位置的代码文件。
内容的提问来源于stack exchange,提问作者Gawron52
相关产品推荐
相关产品推荐

