gpt4 book ai didi

c - 在 C 中读取二进制文件(以 block 为单位)

转载 作者:太空狗 更新时间:2023-10-29 15:11:31 25 4
gpt4 key购买 nike

我不擅长 C,我正在尝试做一些简单的事情。我想打开一个二进制文件,读取 1024 字节的数据 block 并转储到缓冲区中,处理缓冲区,读取另外 1024 字节的数据并继续这样做直到 EOF。我知道我想用缓冲区做什么/做什么,但我一直卡在循环部分和文件 I/O 上。

伪代码:

FILE *file;
unsigned char * buffer[1024];

fopen(myfile, "rb");

while (!EOF)
{
fread(buffer, 1024);
//do my processing with buffer;
//read next 1024 bytes in file, etc.... until end
}

最佳答案

fread() 返回读取的字节数。您可以循环直到它为 0。

FILE *file = NULL;
unsigned char buffer[1024]; // array of bytes, not pointers-to-bytes
size_t bytesRead = 0;

file = fopen(myfile, "rb");

if (file != NULL)
{
// read up to sizeof(buffer) bytes
while ((bytesRead = fread(buffer, 1, sizeof(buffer), file)) > 0)
{
// process bytesRead worth of data in buffer
}
}

关于c - 在 C 中读取二进制文件(以 block 为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28197649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com