C 檔案操作指標移動 off t

2021-06-02 16:20:33 字數 512 閱讀 2485

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 ...