gpt4 book ai didi

c - 在c中读取二进制值

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:02 25 4
gpt4 key购买 nike

我可以从二进制文件中读取无符号整数,但其中一个值打印出负数。

期望值:

45788331,281302247,461354227,13127,299215653,2356985123,

打印出的值:

45788331,281302247,461354227,13127,299215653,-1932982173,

第 6 个值打印为负数,但我正在读取无符号整数列表?

下面是我的代码

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE * fp;
ssize_t read;
int r = 0;

fp = fopen("numbers.bin", "rb");
if (fp == NULL)
exit(-1);

while(fread(&r, sizeof(unsigned int), 1, fp) == 1)
{
printf("%d\n", r);
}

fclose(fp);
if (line) free(line);

exit(0);
}

最佳答案

printf("%d\n", r); 打印出一个有符号十进制整数。

你想要:printf("%u\n", r);

此外,r 声明为 int 而不是 unsigned int

关于c - 在c中读取二进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723190/

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