到目前为止,我已经正确排列了事件顺序(1到4),但在我的convert_and_save函数中,我是否需要使用char数组来创建→ char buffer [4];?
有人能帮帮我吗?即使你只是给我提示要查找什么,我也会非常感激。
我需要编写一个名为:
void convert_and_save(struct record item, FILE * output_handle, int number);
在这个函数内,我按照以下一系列步骤进行操作:
Convert the integer into an array of chars using:
int integer_to_characters(int number, char * buffer) { memcpy(buffer, &number, 4); }
Reverse the order of the chars in that array.
Convert the array of chars back to an integer using:
int characters_to_integer(char * buffer) { int result; memcpy(&result, buffer, 4); return result; }
write the converted record on the output file using:
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); }
htonl()
吗? - Greg Hewgilli = ((i & 0xFF) << 24) | ((i & 0xFF00) << 8) | ((i & 0xFF0000) >> 8) | ((i & 0xFF000000) >> 24);
- Neil Kirk