文字檔案中的 0字元

2022-03-03 23:42:45 字數 438 閱讀 7771

最近讀乙個檔案的某一行後,進行域切分的時候,最乙個欄位為空。 明明有字元的,於是縮小範圍進行debug。

因為底層是getline寫的,所以跟蹤了一下,發現getline的讀取到\n結束作為一行的。

如下read到的641, 但strlen 返回的為21,所以感覺是讀取到的行中包含\0字元。

通過hexdump -c /tmp/history.dat.utf8 發現的確有\0。

也可以vim開啟文字檔案,set list 可以看到^@一樣的乙個字元就是\0了。

#include #include 

#include

intmain()

if(line)

free

(line);

exit(exit_success);

}

---恢復內容結束---

查詢文字檔案中的關鍵字

查詢文字檔案中的關鍵字,說白了就是以文字檔案作為輸入,進行字串匹配,找返回其第一次出現的下標位置。但是由於資料是以文字檔案的形式作為輸入的,如何儲存和進行匹配就成為了乙個問題。下面以兩種方法來介紹如何操作。注 本文中採用的字串匹配演算法只是普通的字串匹配演算法,重點在對檔案處理和分塊查詢。一 蠻力法...

qt寫文字檔案換行符 Qt 文字檔案讀寫

文字檔案讀寫 二進位制檔案比較小巧,但是不是人可讀的格式。文字檔案是一種人可讀的格式的檔案,為了操作這種檔案,我們需要使用 qtextstream 類。qtextstream 和 qdatastream的使用類似,只不過它是操作純文字檔案的。還有一些文字格式,比如 xml html,雖然可以由 qt...

qt寫文字檔案換行符 Qt向文字檔案輸出換行

使用qtextstream向txt檔案輸出換行時,需要使用qiodevice text標誌。官方文件對qiodevice text的解釋 when reading,the end of line terminators are translated to n when writing,the end...