如何用C++读取二进制文件

问题描述 投票:0回答:1

我想编写一个程序来打开二进制文件并使用 DES 对其进行加密。

但是如何读取二进制文件呢?

c++ visual-c++ file-io binaryfiles
1个回答
17
投票

“如何读取二进制文件?”

如果您想读取二进制文件,然后处理其数据(加密、压缩等),那么以易于使用的形式将其加载到内存中似乎是合理的。我建议您使用

std::vector<BYTE>
,其中
BYTE
unsigned char
:

#include <fstream>
#include <vector>
typedef unsigned char BYTE;

std::vector<BYTE> readFile(const char* filename)
{
    // open the file:
    std::streampos fileSize;
    std::ifstream file(filename, std::ios::binary);

    // get its size:
    file.seekg(0, std::ios::end);
    fileSize = file.tellg();
    file.seekg(0, std::ios::beg);

    // read the data:
    std::vector<BYTE> fileData(fileSize);
    file.read((char*) &fileData[0], fileSize);
    return fileData;
}

使用此功能,您可以轻松地将文件加载到矢量中,如下所示:

std::vector<BYTE> fileData = readFile("myfile.bin");

希望这有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.