当我提供相对路径时,使用fopen()打开的文件失败。我在使用Visual Studio 2010的Windows机器上运行此代码。
const char* OUTPUT_FILE = "output/PERFORMANCE.txt";
FILE* f = fopen(OUTPUT_FILE, "w");
这种指定相对路径的方式不正确吗?我应该使用“\”分隔符吗?
使用相同格式指定绝对路径可以正常工作。 (例如“C:/output/PERFORMANCE.txt”)
答案 0 :(得分:2)
检查您当前所在的目录。使用Windows至少有两种方法:
_getcwd
GetCurrentDirectory
确保您位于您认为的目录中,并确保目录中存在目录output
,否则您需要创建它。使用Windows,至少有两种方法:
_mkdir
CreateDirectory
如果没有任何中间目录,文件将无法打开(即使是写入)。如果您没有目标目录的权限,该文件也可能无法打开。
答案 1 :(得分:0)
output
子目录是否存在?打开要写入的文件将创建该文件(如果该文件不存在),但不创建该文件的路径。