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