3 回答
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
C++,seekg用在讀取文件的時(shí)候,seekg(offset,dir),offset是一個(gè)位移值,為L(zhǎng)ong型,=0是當(dāng)前,>0向后移,<0則向前移。dir有3個(gè)參數(shù),ios::beg文件開(kāi)頭,ios::end文件結(jié)尾,ios::cur當(dāng)前指針位置.你讀取文件后,注意讀的時(shí)候是ios::in,寫(xiě)是ios::out你在用seekg(10L,beg),表示文件開(kāi)頭向后移10個(gè)字節(jié),在用cout<<tellg()顯示位移后的位置。
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
seekg函數(shù)是32位系統(tǒng)函數(shù),文件位置用的是32位的int,只能處理小于4G的文件。
要處理超大文件,必須用支持64位的C++編譯器,并且使用_fseeki64這樣的64位函數(shù)。
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
可能是從起始值,每次計(jì)算偏移量,讀取數(shù)據(jù),這樣當(dāng)偏移量超過(guò)int最大范圍時(shí),會(huì)出問(wèn)題。
可以試一下先偏移到你想要的位置,然后,每次從當(dāng)前位置(ios::cur)偏移。
- 3 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報(bào)
