我试图通过反转字节来将我的小端转换为大端,但我获得与小端相同的输出。我修改了我的代码,但价值保持不变。如果有人能告诉我哪里出错了。谢谢你的帮助
#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;
}
答案 0 :(得分:1)
您在此处更改字节顺序
temp[i] = convert[3-i];
但从不再使用temp
。
您可能希望输出temp
中的内容而不是population
中的内容。