通过构造ifstream对象时指定std::ios::binary可以要求以二进制形式读取文件。
然后可以通过tellg函数获取文件的大小。
#include <fstream>
#include <vector>
#include <string>
#include <iostream>
#include <format>
using namespace std;
vector<unsigned char> readBinaryDataFromFile(const string& filePath)
{
vector<unsigned char> ret;
ifstream is{filePath, ios::binary | ios::ate};
if(is)
{
auto fileSize = is.tellg();
vector<unsigned char> binData(fileSize);;
is.seekg(0);
if(is.read((char*)&(binData[0]), fileSize))
{
ret = move(binData);
}
}
return ret;
}
int main()
{
vector<unsigned char>&& data = readBinaryDataFromFile("./ff");
for(a