C++ istream能否讀取二進(jìn)制文件

c++
小樊
106
2024-07-18 13:43:46

是的,C++中的istream類(lèi)可以用來(lái)讀取二進(jìn)制文件??梢允褂胷ead()方法從二進(jìn)制文件中讀取數(shù)據(jù),并將其存儲(chǔ)在一個(gè)指定的緩沖區(qū)中。讀取二進(jìn)制文件時(shí),需要使用ios::binary標(biāo)志打開(kāi)文件流,以確保以二進(jìn)制模式進(jìn)行讀取。以下是一個(gè)示例代碼:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("binary_file.bin", std::ios::binary);

    if (file.is_open()) {
        // 讀取文件內(nèi)容
        char buffer[100];
        file.read(buffer, sizeof(buffer));

        // 打印讀取的數(shù)據(jù)
        for (int i = 0; i < file.gcount(); i++) {
            std::cout << buffer[i];
        }

        file.close();
    } else {
        std::cout << "無(wú)法打開(kāi)文件" << std::endl;
    }

    return 0;
}

在上面的示例中,我們首先打開(kāi)一個(gè)名為“binary_file.bin”的二進(jìn)制文件流,然后使用read()方法讀取文件內(nèi)容,并將其存儲(chǔ)在名為“buffer”的緩沖區(qū)中。最后,我們通過(guò)循環(huán)遍歷緩沖區(qū)中的數(shù)據(jù),并將其打印出來(lái)。

0