- 博客(3)
- 收藏
- 关注
转载 c++ 16进制数形式的字符串转换为16进制数
项目中上位机给下位机发送的指令是16进制数,需要将从控制台输入的string类型数据(比如"AA BB 03 00 07 00 02 CC")转换为对应大小的16进制数。//HexChar()将16进制字符转换为相应大小的16进制数char HexChar(char c){ if((c>='0')&&(c<='9')) return c-'0'; else if((c>='A')&&(c<='F'))
2021-04-16 15:08:58
3307
原创 c++ 控制台输入带空格字符串 getline()跳过执行
项目需要从控制台输入16进制数发送给下位机。使用getline()时碰到的小问题,记录一下。getline()函数跳过执行,因为键盘输入时,是先输入到输入缓冲区的,回车结束后,系统只把回车前的数据给出去,而回车还在缓冲区里。下一次执行getline()的时候就会首先获取回车符。解决:在执行getline()之前先cin.get()把之前留下的回车读取走。char *data = new char[32];string strdata;cin.get();getline(cin,strdata
2021-04-16 14:40:36
1165
原创 自定义通讯协议
第一次写文章。最近在做一个自定义通讯协议的项目,基于socket通讯写一个上位机的驱动,输入指令向下位机发送一串特定的16进制字符串,然后接收下位机回复数据并解析。记录一下思路过程和遇到的问题。思路:1)为了方便操作将数据包定义成结构体,成员对应字段,类型都为unsigned char,存放16进制数2)数据包包含帧头、帧尾、指令标识符、数据区等等,且数据区是不定长的3)每条指令写一个驱动函数,变量设置为形参4)按顺序给数据包结构体成员赋值5)将结构体转换成string类型6)发送数据并接收
2021-03-31 11:37:55
1380
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人