>我正在将共享驱动器路径作为输入并添加额外的"\"并分配给变量。如果我使用此变量打开带有"fopen"的文件,则错误被抛出为"没有这样的文件或目录"。
但是如果我在代码本身中给出相同的路径(路径中带有额外的"\"),我就可以访问。
命令: 程序\xyzabc.txt
(program_name )
1)我不起作用的代码是这样的:
在程序中,我通过添加额外的"\"将传入的输入路径作为"\\xyz\abc.txt"
。
然后, fopen(var_name,"r");/* 不工作*/
2)工作正常的代码:
char arr[100] = "\\xyz\abc.txt"
fopen(arr,"r"); /* works fine */
似乎如果路径在编译时本身是已知的,它正在工作,但在运行时不是。请建议我可以做些什么来访问程序中未硬编码的输入的路径。
您需要在编译时转义文件路径中的反斜杠.. 即 "\xyz\abc.txt",但运行时只有一个斜杠。
从用户读取输入的代码段:
字符文件名[50]; 文件 *fp;
printf("输入文件名 "); gets(文件名);
fp = fopen(文件名, "r");