c++ seekg與tellg的區(qū)別

c++
小樊
92
2024-07-29 13:35:08

seekg()tellg()都是istream類(lèi)的成員函數(shù),用于文件定位和查詢當(dāng)前文件位置。它們的區(qū)別在于:

  1. seekg()用于移動(dòng)文件內(nèi)部指針到指定位置。可以通過(guò)指定相對(duì)于文件開(kāi)頭、文件結(jié)尾或當(dāng)前位置的偏移量來(lái)移動(dòng)指針。語(yǔ)法為:

    stream.seekg(offset, direction);
    

    其中offset為偏移量,direction為偏移方向,可以是ios::beg(文件開(kāi)頭)、ios::end(文件結(jié)尾)或ios::cur(當(dāng)前位置)。

  2. tellg()用于查詢當(dāng)前文件位置。它返回一個(gè)streampos類(lèi)型的值,表示當(dāng)前文件指針的位置。語(yǔ)法為:

    streampos pos = stream.tellg();
    

    其中pos為當(dāng)前文件指針的位置。

總的來(lái)說(shuō),seekg()用于移動(dòng)文件指針位置,而tellg()用于查詢當(dāng)前文件指針位置。它們通常配合使用,可以實(shí)現(xiàn)在文件中進(jìn)行定位和讀取操作。

0