以简单格式"c:filessample.txt"从用户读取文件路径



我正在尝试以简单格式从用户读取命令行的文件路径例如:

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序列"可以让您执行此操作。同样,由于后斜切字符用于启动逃生序列,因此逃生序列\代表后斜切字符本身。

这些规则仅适用于字符串文字,如果您是从用户读取字符串,那么就无需用双重斜线替换后斜线,这是没有意义的,因为单个后斜切是您在文件路径中想要的。只是在字符串字面上获得单个后斜线的方法就是写双斜杠。

最新更新