在我的程序中,我试图构建一个带有路径的文件名,指向存储数据的特定文件夹。我有一些看起来像这样的东西:
string directoryPrefix = "C:\Input data\";
string baseFileName = "somefile.bin";
string fileName = directoryPrefix + index + " " + baseFileName;
然而,编译器一直说我在第一行末尾缺少分号。如何正确设置以使其正常工作?
由于
答案 0 :(得分:2)
答案 1 :(得分:2)
\
是一个特殊字符
string directoryPrefix = "C:\Input data\";
您在字符串\I
和\"
中有特殊命令,因此您的字符串不会终止
加倍\以逃避转义字符
string directoryPrefix = "C:\\Input data\\";
答案 2 :(得分:1)
如上所述,\
在字符串或字符文字中使用时是一个特殊的转义字符。你有太多的选择。要么逃避使用斜杠(所以双斜杠),要么移到后斜杠,这也适用于所有其他操作系统,以便将来更容易移植代码。
string directoryPrefix = "C:\\Input data\\";
string directoryPrefix = "C:/Input data/";
或者最好的选择是转向表示文件系统的平台自然方式。
答案 3 :(得分:0)
一些答案已经提到加倍反斜杠。另一种可能性是使用正斜杠:
std::string directoryPrefix = "C:/Input data/";
即使Windows在命令行上不接受正斜杠, 也会在程序中使用它们时接受它们。