无法使用C(windows)中的fopen从共享驱动器访问文件

时间:2018-02-20 16:46:21

标签: c windows fopen

我将共享驱动器路径作为输入并添加额外的'\'并分配给变量。如果我使用此变量打开文件并使用“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 */

似乎路径在编译时是已知的,它在工作但不是在运行时。请建议我可以做什么来从未在程序中硬编码的输入访问路径。

1 个答案:

答案 0 :(得分:2)

您需要在编译期间转义文件路径中的反斜杠。即 “\ xyz \ abc.txt”但运行时只有一个斜杠。

用于读取用户输入的代码片段:

char filename [50]; FILE * fp;

printf(“输入文件名\ n”); 得到(文件名);

fp = fopen(filename,“r”);