无法在程序中指定文件路径前缀

时间:2010-09-07 16:54:37

标签: c++ visual-studio-2008

在我的程序中,我试图构建一个带有路径的文件名,指向存储数据的特定文件夹。我有一些看起来像这样的东西:

string directoryPrefix = "C:\Input data\";
string baseFileName = "somefile.bin";
string fileName = directoryPrefix + index + " " + baseFileName;

然而,编译器一直说我在第一行末尾缺少分号。如何正确设置以使其正常工作?

由于

4 个答案:

答案 0 :(得分:2)

您需要为字符串中接受的每个'\'添加转义字符。

string directoryPrefix = "C:\\Input data\\";

访问this了解更多细节。

答案 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在命令行上不接受正斜杠, 也会在程序中使用它们时接受它们。