バイトを逆にしてリトル エンディアンをビッグ エンディアンに変換しようとしていますが、リトル エンディアンと同じ出力が得られます。コードを大幅に変更しましたが、値は同じままです。誰かが私が間違っている場所を教えてくれたら。お手伝いありがとう
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE* input;
FILE* output;
input = fopen(argv[1],"r");
output = fopen(argv[2],"w");
int zipcode, population, value;
int popluationEndian;
unsigned char *convert = (unsigned char*) &population;
unsigned char temp[4];
int i;
while(fscanf(input,"%d %d\n",&zipcode, &population)!= EOF)
{
for(i = 0; i<4; i++)
{
temp[i] = convert[3-i];
}
popluationEndian = fwrite(&population,sizeof(int),1,output);
}
fclose(input);
fclose(output);
return 0;
}