readfile.seekg(-3*sizeof(person),ios_base::cur);
===>
readfile.seekg(-3*(off_t)sizeof(person),ios_base::cur);
sizeof()返回的size_t是無符號的,
而off_t是有符號的
f.seekg(-3*sizeof(s),ios::cur); ------該語句沒有移動效果
f.seekg(-3*(off_t)sizeof(s),ios::cur);--------該語句才有移動的效果。
所以,要把移動量強轉為off_t型別方可,off_t返回有符號,size_t返回的是無符號。具體為什麼我還在查。嘻嘻
查到了:因為sizeof()返回的型別是size_t型別,其真實型別是unsigned ,屬於無符號型別,所以在一些編譯器下面,比如gcc g++中,正負都會是正,即-3到頭還是3,所以轉成了off_t型別,off_t是long int 型別,具有正負區別,所以,有用。
C 檔案操作指標移動 off t
readfile.seekg 3 sizeof person ios base cur readfile.seekg 3 off t sizeof person ios base cur sizeof 返回的size t是無符號的,而off t是有符號的 f.seekg 3 sizeof s ios...
檔案的操作之指標移動
要點 指標的移動都是以bytes為單位的,但是只有在t模式下的read n 這裡的n代表的是字元個數。with open aaa.txt mode rt encoding utf 8 as f res f.read 4 print res 讀取四個字元 一 f.seek n,模式 n指的是移動的位元...
python檔案操作 檔案指標移動 修改
本文目錄 一 檔案指標移動 二 修改 大前提 檔案內指標的移動是bytes為單位的,唯獨t模式下的read讀取內容個數是以字元為單位 f.read 3 with open a.txt mode rt encoding utf 8 as f data f.read 3 print data with ...