이진 파일에서 서명되지 않은 int를 읽을 수 있지만 값 중 하나가 음수로 출력됩니다.c의 이진 값 읽기
기대 값 :
45,788,331, 281,302,247, 461,354,227, 13,127, 299,215,653, 2,356,985,123,
값 인쇄 :
45,788,331, 281,302,247, 461,354,227, 13127 , 299215653, -1932982173,
여섯 번째 값은 음수로 출력되지만 서명되지 않은 int의 목록을 읽는 중입니까? 밖으로
#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);
}
어떤 바이트 정렬을 사용하고 있습니까? – Grantly
'r'은 서명되지 않은 것으로 선언되었습니다. – Barmar