fopen()与相对路径

时间:2011-10-03 18:28:58

标签: c++ visual-c++ file-io

我在使用相对路径的fopen()时遇到了麻烦。我想像这样使用fopen:

fopen("\\Saurabh\\pqrs.txt");

我将filePointer变为null。

出现这种情况是因为我正在尝试创建一个必须读取文件的设置或部署项目。用户执行安装后默认选择的文件路径为C:\ Program Files \ Setup .. (其中exe被倾倒)。所以我将文件转储到同一个文件夹中,并为程序中的那些文件提供路径(固定路径或硬编码)。

如果用户选择其他路径进行安装,程序将失败。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:7)

两个问题:

  1. 您需要转义反斜杠字符。写\\
  2. 您需要使用相对路径。通过使用\\启动路径,您的意思是从根目录开始
  3. 把这些放在一起,我想你应该写:

    fopen("Saurabh\\pqrs.txt");
    

答案 1 :(得分:1)

确保将\个字符加倍。您传入的字符串应为"Saurabh\\pqrs.txt"。请注意,使用\\开始路径意味着它不是相对的。 (嗯,实际上它与你当前的驱动器相关,但我怀疑这是你正在寻找的。)