c++ - C++读取二进制文件的方法

标签 c++ visual-c++ file-io binaryfiles

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

但是我怎样才能读取二进制文件呢?

最佳答案

"how can I read the binary file?"

如果你想读取二进制文件然后处理它的数据(加密、压缩等),那么以一种易于使用的形式将它加载到内存中似乎是合理的。我建议你使用 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;
}

使用此功能,您可以像这样轻松地将文件加载到 vector 中:

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

希望这有帮助:)

关于c++ - C++读取二进制文件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366319/

相关文章:

file-io - unix 命令 'mv' 失败

c++ - libuv 中 sd-bus 的事件循环处理

c++ - 当链接计数为2时,有没有办法完全删除一个inode?

c++ - C++中删除对象和new关键字

c++ - 使用正在定义的类的静态类成员

c - 两个不同的 C 程序正在访问一个文件

c++ - 未定义的虚表 C++

c++ - 使用 Visual Studio 编译器在编译时获取 vector 元素的大小(即使它是空的)

c++ - 访问 std::string 中的空终止符(字符串下标超出范围)

c - 使用不同的数据类型逐行读取文件中的数据