【发布时间】:2020-10-15 14:12:02
【问题描述】:
我陷入了这个奇异的问题: 我必须在 "C:....\0-myfolder\subfolder\file.txt" 之类的路径上写入 txt 文件, 其中 '0-myfolder' 是文件夹的全名
将其写为带有双反斜杠的普通路径不起作用,因为在序列中读取了不需要的空字符。我尝试写入同一目录中的另一个文件夹,该文件夹的名称不以 0 开头,并且它可以正常工作,并且由于其他原因我无法重命名该文件夹。
有没有办法强制 c++ 不读取空字符?
【问题讨论】:
-
你试过正斜杠 / 吗?
C:..../0-myfolder/subfolder/file.txt -
转义 \ 字符,将所有 \ 替换为 \\
-
如果使用双反斜杠不起作用,则说明其他问题。请注意,您需要转义所有反斜杠,而不仅仅是
0之前的反斜杠。跨度> -
是的,我正确地使用了双反斜杠而不是单反斜杠,正如我所说,我还尝试从 0-myfolder 同一目录中的另一个文件夹中读取它并且它可以工作..即使使用正斜杠正如@Tony 所建议的那样,它没有用。我还让它写出了我插入的文件的文件名,它是正确的,我可以将它复制并粘贴到资源管理器上并打开文件。
-
那么还有其他问题。你能从你的程序中读取它吗?您是否确认您对该文件具有写入权限,并且没有在其他地方打开它?考虑创建一个minimal reproducible example。
标签: c++ filepath null-character