找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2423|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机关于使用sprintf函数遇到\0的情况

[复制链接]
跳转到指定楼层
楼主
ID:258164 发表于 2019-4-16 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用sprintf(a,"%x",b);当b中含有空字符的时候,打印出来得对应的16进制数不是0,而是一个其他值。
是sprintf不能处理空字符吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2019-4-16 12:55 | 只看该作者
%x 本来是打印数值类型成十六进制的字符串的,空字符?是指ASCII 0x20?

回复

使用道具 举报

板凳
ID:258164 发表于 2019-4-16 13:01 | 只看该作者
devcang 发表于 2019-4-16 12:55
%x 本来是打印数值类型成十六进制的字符串的,空字符?是指ASCII 0x20?

是ASCII的0,NULL。正常16进制打印出来应该是0x00,实际打印出来是个随机值
回复

使用道具 举报

地板
ID:258164 发表于 2019-4-16 13:11 | 只看该作者
devcang 发表于 2019-4-16 12:55
%x 本来是打印数值类型成十六进制的字符串的,空字符?是指ASCII 0x20?

是只NULL字符,正常打印为16进制的值应该是0x00,现在打印不对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表