c++读取大文件 并赋值给变量

如果您要读取一个非常大的文件并将其内容赋值给变量,最好的方式是逐块读取文件,而不是一次性读取整个文件。

在 C++ 中,您可以使用 ifstream 类来打开并读取文件。以下是一种可能的读取文件并将其内容存储到变量中的方法:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
    ifstream infile("filename.txt");
    if (infile.is_open()) {
        // 获取文件大小
        infile.seekg(0, ios::end);
        int filesize = infile.tellg();
        infile.seekg(0, ios::beg);
        // 读取文件并存储到变量中
        char* buffer = new char[filesize];
        infile.read(buffer, filesize);
        // 关闭文件
        infile.close();
        // 打印读取的内容
        string content(buffer, filesize);
        cout << content << endl;
        // 释放内存
        delete[] buffer;
    else {
        cout << "Unable to open file" << endl;
    return 0;

在上述代码中,我们首先打开文件,获取文件的大小,然后读取整个文件并将其存储到一个字符数组中。最后,我们将字符数组转换为一个字符串并输出。

需要注意的是,如果您处理的是非常大的文件,那么上述方法可能会导致内存不足或程序崩溃。此时,您需要将文件拆分为多个块并逐块读取和处理文件。

  •