c++ readfile函數(shù)如何指定讀取的字節(jié)數(shù)

c++
小樊
86
2024-09-25 00:22:17
欄目: 編程語言

在C++中,你可以使用fread函數(shù)從文件中讀取指定字節(jié)數(shù)的數(shù)據(jù)。以下是一個(gè)簡(jiǎn)單的示例:

#include <iostream>
#include <fstream>
#include <vector>

int main() {
    const char* file_name = "example.txt";
    std::ifstream file(file_name, std::ios::binary | std::ios::ate);

    if (!file.is_open()) {
        std::cerr << "無法打開文件: " << file_name << std::endl;
        return 1;
    }

    // 獲取文件大小
    std::streamsize file_size = file.tellg();
    file.seekg(0, std::ios::beg);

    // 分配緩沖區(qū)并讀取指定字節(jié)數(shù)的數(shù)據(jù)
    const size_t bytes_to_read = 1024;
    std::vector<char> buffer(bytes_to_read);
    if (file.read(buffer.data(), bytes_to_read)) {
        std::cout << "成功讀取 " << bytes_to_read << " 字節(jié)" << std::endl;
        std::cout << "讀取的內(nèi)容: ";
        for (char c : buffer) {
            std::cout << c;
        }
    } else {
        std::cerr << "讀取文件時(shí)發(fā)生錯(cuò)誤" << std::endl;
    }

    file.close();
    return 0;
}

在這個(gè)示例中,我們首先打開一個(gè)名為example.txt的二進(jìn)制文件。然后,我們獲取文件的大小,并分配一個(gè)大小為1024字節(jié)的緩沖區(qū)。接下來,我們使用fread函數(shù)從文件中讀取指定字節(jié)數(shù)的數(shù)據(jù)(在這里是1024字節(jié)),并將其存儲(chǔ)在緩沖區(qū)中。最后,我們輸出讀取到的數(shù)據(jù)。

0