fread的誤區(以文字格式開啟檔案)

2021-07-10 13:34:46 字數 510 閱讀 6312

先看一段**,在讀文字檔案的時候,第二行可以省略,第四五行一定要有。否則後面**有坑。(fk微軟)

void* buffer = malloc(nlength + 2); //maybe wchar, so + 2

memset(buffer, 0, nlength + 2);

ret = fread(buffer, 1, nlength, m_pfile);

((char*)buffer)[ret] = 0;

((char*)buffer)[ret + 1] = 0;

std::string s = (char*)buffer;

後來乾脆這麼寫

void* buffer = malloc(nlength);

ret = fread(buffer, 1, nlength, m_pfile);

std::string s((const char*)buffer, ret);

**********=服了csdn的**排版格式了*****====

以文字格式和二進位制格式開啟檔案,到底有什麼區別?

我們知道,open 函式第二個引數是乙個字串,用於指定檔案的開啟方式,如果該字串 現 b,則表示以二進位制格式開啟檔案 反之,則以普通的文字格式開啟檔案。那麼,文字檔案和二進位制檔案有什麼區別呢?實際上,從資料儲存的角度上分析,二進位制檔案和文字檔案沒有區別,它們的內容都是以二進位制的形式儲存在磁碟...

C 讀取固定文字格式的txt檔案

c 讀取固定文字格式的txt檔案 乙個簡單的c 讀取txt文件的程式,文件中用固定的格式存放著例項資料。判斷關鍵字在文件中是否存在 var istr file.readalllines 1.txt any x x.split 0 裝置id 107157061 tostring 獲取序列中滿足查詢條件...

sqlldr 匯入有逗號的文字格式入庫

1.建表 2.建立ora.ctl infile 測試.txt replace into table test08 id char terminated by usernmae char terminated by mobile char terminated by identified card c...