在c/c++編寫**的過程中,經常會用到檢索檔案路徑的時候, 首先要明確一點,由於「\」符號是c\c++的保留符號,因此直接貼上路徑字串在**中是不能使用的。例如下面的方法,是不能得到目標路徑字串的。
string s0 = "c:\users\administrator\desktop\rwtest\write.txt";
cout << s0.data() << endl;
按照上面的方式,在編譯階段就會報出一些warning,而且得到的結果輸出也不是預期的路徑字串,如下圖。
因此如上面的用法時, 編譯器會報出warning如下圖:
我們常用的方式是,利用「\\」就可以得到預期中的路徑層級符號了,如下面**:
string s = "c:\\users\\administrator\\desktop\\rwtest\\write.txt";
cout << s.data() << endl;
得到的輸出結果與預期相同:
但是如果頻繁用到路徑檢索的時候,「\\」需要手動新增十分麻煩,這裡介紹一種c++的新特性——原始碼轉譯。
就是指按照字面原始碼進行編譯,不再區分是否為c\c++保留的符號,使用方法如下:
string s1 = r"(c:\users\administrator\desktop\rwtest\write.txt)";
cout << s1.data() << endl;
由此得到的輸出與使用「\\」是一致的,對比實驗如下圖所示:
檢索原始碼 刪除無用Properties的小工具
背景 重新做專案的過程中,引用了大量舊 尤其是properties檔案,裡面肯定有一批是無用的,乾脆笨辦法直接掃瞄原始碼檔案來過濾。後續在此基礎上修改修改,再做個掃瞄無用image檔案的類。如下 1 public class propertiescleaner 1920 public void ru...
關於hive RegexSerDe的原始碼分析
最近有個業務建表使用了 regexserde,之前雖然也它來解析nginx日誌,但是沒有做深入的了解。這次看了下其實現方式。建表語句 17create external table ods cart log time local string,request json string,trace id...
C 壓縮與解壓檔案原始碼
獲得壓縮的資料夾 壓縮資料夾的名字 string name file rar 壓縮檔案的流物件 messagebox.show name zipoutputstream output new zipoutputstream file.create name output.setlevel 6 str...