【问题标题】:created file in subdirectory but cannot open file在子目录中创建文件但无法打开文件
【发布时间】:2014-04-25 17:32:56
【问题描述】:

我按照thread 中给出的说明在子目录中创建文件。

ofstream forceFile;
forceFile.open(".\\output_files\\error_log.csv", ios::out | ios::app);
forceFile << "stuff" << "\r\n";
forceFile.close();

但是现在我在基本目录中有文件,大小,无法打开并被命名

.\output_files\error_log.txt

如果我双击该文件,我被告知找不到该文件并被告知尝试不同的路径。如果我使用记事本++ 打开,系统会询问我是否要创建文件。在 .\output_files

中创建一个空文件

这些文件是由我的大学 Linux 集群在大学共享服务器空间中创建的,然后我通过 Windows 笔记本电脑上的 AFS 链接查看文件。

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于网络文件共享的问题。
  • 如果你使用的是linux,为什么使用反斜杠'\\'而不是正斜杠'/'作为目录分隔符?
  • 知道如何删除文件 .\output_files\error_log.csv

标签: c++ linux ofstream


【解决方案1】:

问题是您使用的是反斜杠,而不是斜杠。

UNIX 上的路径组件分隔符是/,而不是\

因为/ 在 C 字符串中并不是特别特殊,所以您不需要使用反斜杠对其进行转义。所以:不是\\,不是\/,当然也不是//

【讨论】:

  • 如果链接的线程在他们的答案中包含这个花絮,那就太好了
  • 是的,会的。除了路径的内容实际上不在 C++ 问题的范围内。
  • 还有,是“./output_files/error_log.csv”还是“.//output_files//error_log.csv”
  • @forest.peterson:为了帮助你自己思考一下(:P)你认为双重/会做什么?
  • @LightnessRacesinOrbit 我想你误解了我的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
  • 2022-01-07
  • 1970-01-01
  • 2015-05-28
  • 2020-10-18
相关资源
最近更新 更多