我正在尝试以简单格式从用户作为命令行读取文件路径 例如:
<input type="text"
name="myArray[{{ nthRow }}][description][{{ language.language_id }}][name]"
value="{{ myArray.description[language.language_id].name }}"
class="form-control"
/>
但是在尝试使用path="c:\files\sample.txt"
访问时
找不到文件。
所以我用file.open("c:\files\sample.txt");
来更改path.replace(path.begin(),path.end(),"\\","\\\\")
,但是不起作用。
救救我!
答案 0 :(得分:0)
您似乎知道
path="c:\files\sample.txt";
不正确,应该是
path="c:\\files\\sample.txt";
(也可以使用正斜杠)
path="c:/files/sample.txt";
但这也不正确
path="c:\files\sample.txt";
path.replace(path.begin(),path.end(),"\\","\\\\");
第二行用双反斜杠替换所有单反斜杠,但是在原始字符串中没有单反斜杠。
\f
是换页符字符的转义序列,而\s
甚至不是合法的字符序列。
转义序列用于字符串文字中,以表示否则很难编写的字符。例如,您不能轻易将"
放在字符串文字中,因为它会结束字符串,因此存在转义序列\"
可以让您执行此操作。同样,由于使用反斜杠字符来开始转义序列,因此转义序列\\
代表反斜杠字符本身。
这些规则仅适用于字符串文字,如果您正在从用户那里读取字符串,则无需用双反斜杠替换反斜杠,这是没有意义的,因为单反斜杠是您在文件路径中想要的。只是在字符串文字中获得单反斜杠的方法就是编写双反斜杠。