请告诉我哪里出错了。
我有一个文件,需要将最后 n 个字节复制到数组中。
char *buffer = (char *)malloc(sizeof(char)*n);
size_t result = fread(buffer,sizeof(char)*n,1,outptr);
结果值为0。
到目前为止,我的代码中的所有内容都工作正常(我已使用 gdb 检查了所有值)。在几行之后我也会释放缓冲区。
n 是用户输入的。输出 ptr 用作
FILE *outptr = fopen(outfile,"w")
//输出文件名也是用户输入的,并经过检查以确保它是 bmp 文件。
最佳答案
您正在尝试读取以写入模式打开的文件。
更改:
FILE *outptr = fopen(outfile,"w");
至:
FILE *outptr = fopen(outfile,"r"); /* Use "rb", not "r", if 'outfile' is binary. */
关于c - 使用 fread 将文件的一部分读取到缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659244/