2013-06-18 63 views
3

禁用轉義序列我使用C++來處理很多文件,我必須寫在這樣的源代碼文件名: "F:\\somepath\\subpath\\myfile", 我不知道,如果有擺脫打字的任何方式「 \\「來在字符串文字上下文中得到一個字符'\',也就是說,我希望我只能寫"F:\somepath\subpath\myfile"而不是枯燥的。如何在C++

+2

使用正斜槓。 – jrok

+0

你能舉個例子嗎? –

+8

...並且不要硬編碼任何路徑... –

回答

13

解決方案:

  1. 使用C++ 11字符串文字:R"(F:\somepath\subpath\myfile)"

  2. 使用boost ::與前進路徑斜槓: 他們將驗證您的路徑,提高問題例外。

    boost::filesystem::path p = "f:/somepath/subpath"; 
    p /= "myfile"; 
    
  3. 只是使用正斜槓; Windows應該理解他們。

4

如果你有C++ 11,可以使用原始字符串字面量:

std::string s = R"F:\somepath\subpath\myfile"; 

在另一方面,你可以使用正斜槓的文件系統路徑:

std::string s = "F:/somepath/subpath/myfile"; 
+0

好的,非常感謝 –

4

兩個明顯選項:

  1. Windows瞭解正斜槓(或者說,它將它們轉換爲反斜槓);改用它們。
  2. C++ 11有原始字符串文字。他們裏面的東西不需要逃脫。

    R"(F:\somepath\subpath\myfile)"