<分区>
我的任务是使用 C 将数据文件从大端转换为小端,反之亦然。我已经在线查找了大约 3 个小时的其他示例并阅读了我的教科书,但是我对如何甚至启动这个功能。
到目前为止,我的事件顺序是正确的(1 到 4),但在我的 convert_and_save
函数中,我是否必须使用 → char buffer[4];
?
有人可以帮帮我吗?即使您只是提供有关查找内容的线索,我也会非常感激。
我需要编写一个函数:
void convert_and_save(struct record item, FILE * output_handle, int number);
在此函数中,我执行以下一系列步骤:
使用以下方法将整数转换为字符数组:
int integer_to_characters(int number, char * buffer) { memcpy(buffer, &number, 4); }
反转该数组中字符的顺序。
使用以下方法将字符数组转换回整数:
int characters_to_integer(char * buffer) { int result; memcpy(&result, buffer, 4); return result; }
使用以下方法将转换后的记录写入输出文件:
void save_record(FILE * file_handle, struct record a) { char output_buffer[size_of_record]; integer_to_characters(a.age, &(output_buffer[0])); memcpy(&(output_buffer[4]), a.name, 12); integer_to_characters(a.department, &(output_buffer[16])); fwrite(output_buffer, sizeof(char), size_of_record, file_handle); }