1、利用文件,把这个int数值用二进制的方法写入文件,然后以char型读取。
(运行环境:64位CentOS,sizeof(int)=4)
通过memcpy,将int型变量的首地址作为src buffer,char数组作为dst buffer,每个int型变量占据buffer的4个字节。
2、参考例程如下:
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 10
int main(int argc, char * argv[]) {
char buffer[BUFFER_SIZE] = {0};
int input1 = 0, input2 = 0, output1 = 0, output2 = 0;
printf("size of int: %d\n", sizeof(int));
printf("Please input two integers\n");
scanf("%d", &input1);
scanf("%d", &input2);
printf("The input integers are : %d %d\n", input1, input2);
memcpy(buffer, &input1, sizeof(int));
memcpy(buffer + sizeof(int), &input2, sizeof(int));
printf("Buffer:\n");
for (int i = 0; i < BUFFER_SIZE; ++i) {
printf("0x%02x ", buffer[i]);
}
printf("\n");
memcpy(&output1, buffer, sizeof(int));
memcpy(&output2, buffer + sizeof(int), sizeof(int));
printf("The output integers retrieved from buffer: %d %d\n", output1, output2);
return 0;
}
注意:
不同语言、不同机器间通过buffer来存取int型值,要注意大头、小头的区别,必要时要做大小头转换操作。