【发布时间】:2017-12-10 12:35:25
【问题描述】:
我可以从二进制文件中读取无符号整数,但其中一个值打印为负数。
预期值:
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);
}
【问题讨论】:
-
你使用什么字节对齐方式?
-
您已将
r声明为已签名,而不是未签名。