我的任务是使用 C 将数据文件从大端转换为小端,反之亦然。我已经在网上寻找了大约 3 个小时来寻找其他示例并阅读我的教科书,但是我什至不知道如何开始这个功能。
到目前为止,我的事件顺序是正确的(1 到 4),但是在我的convert_and_save
函数内部,我必须使用 → 创建一个 char 数组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); }