我用ofstream 将串口读出的16进制数,写入txt文件乱码,

qq_38188155 2019-03-18 10:07:22
"Reading from serial port""End reading from serial port"这两句单独测试不会乱码,中间数组里面的十六进制数就会乱码,但是十进制既不会乱码,我也单独试过定义一个srting 输出也乱码,为什么啊

    while(ros::ok()){
serial_msgs::serial msg;
ros::spinOnce();
if(ser.available()){sleep(1);

ofile.open("/home/gkk/abc.txt",ios::app);
ROS_INFO_STREAM("Reading from serial port");
//ofstream ofile;
//ofile.open("/home/gkk/abc.txt");
ofile<<"Reading from serial port"<<endl;
ser.read(r_buffer,rBUFFERSIZE);
for(int i=0;i<rBUFFERSIZE;i++)
{
ROS_INFO("[0x%02x]",r_buffer[i]);
ofile<<r_buffer[i]<<endl;

}
ROS_INFO_STREAM("End reading from serial port");
ofile<<"End reading from serial port"<<endl;
ofile.close();
...全文
304 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2019-03-18
  • 打赏
  • 举报
回复
二进制读写可以最精确地控制,用来读写文本文件有的时候用文本方式读写无法替代。
ooolinux 2019-03-18
  • 打赏
  • 举报
回复
二进制方式打开文件,写入16进制数。
qq_38188155 2019-03-18
  • 打赏
  • 举报
回复
引用 1 楼 ooolinux 的回复:
16进制数,本来应该是什么字符?
我就是把串口读回来的16进制数,放入无符号数组里,然后写入txt,txt显示乱码,是因为txt没法保存16进制数吗。那怎么才能以16进制的形式保存在txt文件里、
ooolinux 2019-03-18
  • 打赏
  • 举报
回复
16进制数,本来应该是什么字符?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧