禁用轉義序列我使用C++來處理很多文件,我必須寫在這樣的源代碼文件名: "F:\\somepath\\subpath\\myfile"
, 我不知道,如果有擺脫打字的任何方式「 \\「來在字符串文字上下文中得到一個字符'\',也就是說,我希望我只能寫"F:\somepath\subpath\myfile"
而不是枯燥的。如何在C++
Q
如何在C++
3
A
回答
13
解決方案:
使用C++ 11字符串文字:
R"(F:\somepath\subpath\myfile)"
使用boost ::與前進路徑斜槓: 他們將驗證您的路徑,提高問題例外。
boost::filesystem::path p = "f:/somepath/subpath"; p /= "myfile";
只是使用正斜槓; Windows應該理解他們。
4
如果你有C++ 11,可以使用原始字符串字面量:
std::string s = R"F:\somepath\subpath\myfile";
在另一方面,你可以使用正斜槓的文件系統路徑:
std::string s = "F:/somepath/subpath/myfile";
+0
好的,非常感謝 –
4
兩個明顯選項:
- Windows瞭解正斜槓(或者說,它將它們轉換爲反斜槓);改用它們。
C++ 11有原始字符串文字。他們裏面的東西不需要逃脫。
R"(F:\somepath\subpath\myfile)"
相關問題
使用正斜槓。 – jrok
你能舉個例子嗎? –
...並且不要硬編碼任何路徑... –