2010-09-07 63 views
0

在我的程序中,我试图构建一个文件名,其路径指向存储数据的特定文件夹。我看起来像这样:无法在程序中指定文件路径前缀

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

但是,编译器总是说我在第一行结尾处缺少一个分号。我如何正确设置它,以便它能工作?

感谢

回答

2

\是一个特殊字符

string directoryPrefix = "C:\Input data\"; 你有串\I\"等你的字符串没有终止

翻倍的\逃离转义字符的特殊命令

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

+0

啊,谢谢。好吧,这很直观...... – Faken 2010-09-07 17:00:53

2

您需要逃生charecters添加到每个“\”在一个字符串被接受。

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

访问this了解更多细节。

0

几个答案已经提到加倍反斜杠。另一种可能性是使用正斜杠,而不是:

std::string directoryPrefix = "C:/Input data/"; 

即使Windows不接受正斜杠在命令行上,它会你在程序中使用他们接受他们。

1

如注意的\是一个特殊的转义字符,当在字符串或字符文字中使用时。你有太多的选择。要么避免使用斜杠(所以双斜杠),要么移动到反斜杠,这也适用于所有其他操作系统,以便将来您的代码更易于移植。

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

或者最好的选择是移动到表示文件系统的平台中性方式。

相关问题