【问题标题】:Unable to access file from share drive using fopen in C (windows)无法使用 C 中的 fopen 从共享驱动器访问文件(Windows)
【发布时间】:2018-02-20 16:46:21
【问题描述】:

我将共享驱动器路径作为输入并添加额外的“\”并分配给一个变量。如果我使用此变量打开“fopen”文件,则会抛出“无此类文件或目录”错误。

但如果我在代码本身中给出相同的路径(路径中带有额外的“\”),我就可以访问。

命令:程序\\xyz\abc.txt(程序名称)

1)我的代码不起作用是这样的:

在程序中,我通过添加额外的“\”将传入的输入路径设为"\\\\xyz\\abc.txt"

然后,fopen(var_name,"r"); /* 不工作*/

2) 运行良好的代码:

char arr[100] = "\\\\xyz\\abc.txt"

fopen(arr,"r"); /* works fine */

如果路径在编译时已知,它本身正在工作,但在运行时不知道。请建议我可以做些什么来从程序中未硬编码的输入访问路径。

【问题讨论】:

标签: c windows fopen


【解决方案1】:

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

读取用户输入的一段代码:

字符文件名[50]; 文件 *fp;

printf("请输入文件名\n"); 获取(文件名);

fp = fopen(文件名, "r");

【讨论】:

  • 函数:gets() 已经贬值多年,并在最新的 C 标准中完全消除。最好使用fgets() 然后删除尾随的换行符
  • 为了便于阅读和理解,请遵循以下公理:每行只有一个语句,并且(最多)每个语句一个变量声明。
  • @Archie Yalakki 感谢您的回答。它帮助了我。
猜你喜欢
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
相关资源
最近更新 更多