标签:style http io ar 文件 数据 sp div c
1.将1个整型数据输入一个缓冲区char *buffer,实现跨平台传输,以二进制方式和文本方式分别实现写缓冲区和读缓冲区
---->在网络中传输是大端模式,而在本机上可能是小端模式,这个需要先判断
#include <stdio.h> #include <stdlib.h> #include <string.h> char buf1[1024]; char buf2[1024]; int ascii_write_to(int); int binary_write_to(int); int binary_read_from(); int ascii_read_from(); int main(int argc, const char *argv[]) { int a = 0x12345678; binary_write_to(a); ascii_write_to(a); printf("%x %x\n", binary_read_from(), ascii_read_from()); return 0; } int ascii_write_to(int data) { sprintf(buf1, "%d", data); return data; } int binary_write_to(int data) { short int x = 0x0001; char *p = (char*)&x; if(*p)//小端模式 { int tmp = (data >> 24)&0xff | (data >> 8)&0xff00 | (data << 8)&0xff0000 | (data << 24)&0xff000000; *(int*)buf2 = tmp; } else //大端模式 memcpy(buf2, &data, sizeof(data)); return data; } int ascii_read_from() { int tmp; sscanf(buf1, "%d", &tmp); return tmp; } int binary_read_from() { int data = *(int*)buf2; unsigned short a = 0x0001; char *p = &a; if(!(*p)) { int tmp = data;//大端机 } else//小端机 { int tmp = (data >> 24)&0xff | (data >> 8)&0xff00 | (data << 8)&0xff0000 | (data << 24)&0xff000000; } return tmp; }
流可以分为两种类型:文本流(ASCII)和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,反之亦然。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
标签:style http io ar 文件 数据 sp div c
原文地址:http://blog.csdn.net/aa838260772/article/details/39677149