【MFC】——读取二进制文件

  1. 获取文件长度
int GetBinSize(char* path)
{
	int size = 0;
	std::ifstream infile(path, std::ifstream::binary);

	infile.seekg(0, infile.end);
	size = infile.tellg();
	infile.seekg(0, infile.beg);

	infile.close();
	return size;
}
  1. 读取二进制文件
void readBin(char* path, BYTE* buf, int size)
{
	std::fstream file;
	file.open(path, std::ios::binary | std::ios::in);

	if (!file.is_open())
	{
		std::cout << "fail" << std::endl;
		return;
	}
	file.read(reinterpret_cast<char*>(buf), size);
	file.close();
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读取二进制文件的内容,你可以使用 CFile 类来打开文件,并使用 `CFile::Read` 函数来读取数据。下面是一个示例代码,演示了如何读取二进制文件的内容: ```cpp #include <afx.h> void ReadBinaryFile(const CString& filePath) { CFile file; if (file.Open(filePath, CFile::modeRead | CFile::typeBinary)) { ULONGLONG fileSize = file.GetLength(); BYTE* buffer = new BYTE[fileSize]; file.Read(buffer, (UINT)fileSize); file.Close(); // 处理读取的数据 // ... delete[] buffer; } else { AfxMessageBox(_T("Failed to open the file.")); } } ``` 在这个示例中,我们定义了一个函数 ReadBinaryFile,它接受一个 CString 类型的参数 filePath,表示需要读取二进制文件路径。 我们创建了一个 CFile 对象,并使用 Open 函数打开指定的二进制文件。我们使用 `CFile::modeRead` 标志来以只读模式打开文件,使用 `CFile::typeBinary` 标志来指定文件类型为二进制。 如果成功打开文件,我们首先获取文件的大小,以便为读取数据分配足够的空间。我们创建了一个大小为 fileSize 的 BYTE 数组作为缓冲区。 然后,我们使用 `file.Read` 函数从文件读取数据,并将数据存储到缓冲区中。我们传递缓冲区的指针和需要读取的字节数给 `Read` 函数。 最后,我们关闭文件,并可以在读取的数据上进行处理。你可以根据实际需求来处理读取的数据。 需要注意的是,读取的数据是以字节为单位的,你可能需要根据数据的具体格式进行解析和转换。 希望这个示例能帮助到你!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值