我正在尝试以简单格式从用户读取命令行的文件路径例如:
path="c:filessample.txt"
但是在尝试使用file.open("c:filessample.txt");
访问时未找到文件。
所以我使用path.replace(path.begin(),path.end(),"\","\\")
将其更改 to \
,但它不起作用。
帮助我!
,您似乎知道
path="c:filessample.txt";
是不正确的,应该是
path="c:\files\sample.txt";
(或正向斜线也有效)
path="c:/files/sample.txt";
但这也是不正确的
path="c:filessample.txt";
path.replace(path.begin(),path.end(),"\","\\");
第二行将所有单个后斜线替换为双重斜线,在您的原始字符串中没有单个后斜线。
f
是的 form form feed 字符, s
甚至不是合法字符序列。
逃脱序列用字符串文字使用来表示字符,否则很难编写。例如,您不能轻易将"
放在字符串字面上,因为它将结束字符串,因此存在Escape序列"
可以让您执行此操作。同样,由于后斜切字符用于启动逃生序列,因此逃生序列\
代表后斜切字符本身。
这些规则仅适用于字符串文字,如果您是从用户读取字符串,那么就无需用双重斜线替换后斜线,这是没有意义的,因为单个后斜切是您在文件路径中想要的。只是在字符串字面上获得单个后斜线的方法就是写双斜杠。