バイナリファイルから符号なし整数を読み取ることはできますが、値の1つが負の値を出力しています。バイナリ値をcで読み取る
期待値:
45788331、 281302247、 461354227、 13127、 299215653、 2356985123、
値をプリントアウト:
45788331、 281302247、 461354227、 13127 、 299215653, -1932982173,
第6番目の値は負で印刷されていますが、未署名の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