gpt4 book ai didi

c++ - 我如何确保 fopen() 打开一个相对于可执行文件的文件而不是我在 C++ 中的当前目录?

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:20 24 4
gpt4 key购买 nike

我有一个在 Windows 7 上使用 MinGW 编译的 C++ 程序调用 fopen(),指定一个具有相对路径的文件。如果您在它自己的目录中运行可执行文件,该程序可以正常工作,但我注意到如果我在不同的目录中使用命令行运行该程序,fopen() 将找不到指定的文件。例如,如果我的可执行文件“foo.exe”和指定文件“bar.txt”位于“C:\project\build\”并且我在“C:\project\”中运行 exe,fopen() 将找不到文件。使用代码或编译器标志是否有一些解决方法?

最佳答案

我可以看到这是访问相对于可执行文件指定位置的资源所必需的,尽管不知道可执行文件本身的绝对路径。我建议获取可执行文件的绝对路径,可能使用 Get path of executable 中描述的方法之一。 ,然后将进程的工作目录更改为可执行文件的父目录,或者通过解析相对于该目录的相对路径来构造要打开的文件的绝对路径。然后您可以将结果传递给 fopen()

关于c++ - 我如何确保 fopen() 打开一个相对于可执行文件的文件而不是我在 C++ 中的当前目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com