OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5688|回复: 5

printf 输出字符串“%2F,%d问题”

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2020-4-23
在线时间
5 小时
发表于 2022-11-15 11:57:05 | 显示全部楼层 |阅读模式
2金钱
大神指点一下
我使用在使用stm32单片机的时候想要输出一串字符串"XXXXXXXX%2FXXX,XXX%D666",

附上我的做法,但是输出不对
#define  chuan "XXXXXXXX%2FXXX,XXX%D666"
printf(chuan );

这样写输出的是XXXXXXXX0.0000XXX,XXX0666,不是我想要的

大神们指点一下,谢谢



最佳答案

查看完整内容[请看2#楼]

好像前面的%2F被解释成了2位有效数字的浮点数,%D是整形输出。你想输出%号吧?%在printf里是转义符,要想输出%,需要使用%%,编译器看见两个%就知道你要格式化输出%号了,也就是说#define chuan "XXXXXXXX%%2FXXX,XXX%%D666"才对
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

982

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7862
金钱
7862
注册时间
2014-8-13
在线时间
1584 小时
发表于 2022-11-15 11:57:06 | 显示全部楼层
好像前面的%2F被解释成了2位有效数字的浮点数,%D是整形输出。你想输出%号吧?%在printf里是转义符,要想输出%,需要使用%%,编译器看见两个%就知道你要格式化输出%号了,也就是说#define  chuan "XXXXXXXX%%2FXXX,XXX%%D666"才对
回复

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4418
金钱
4418
注册时间
2018-5-11
在线时间
923 小时
发表于 2022-11-15 20:18:38 | 显示全部楼层
%是特殊字符,
后面跟不同的字符代表不同的控制意义,
先去学习一下C语言printf函数的用法吧。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

29

主题

167

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-7-26
在线时间
184 小时
发表于 2022-11-15 20:39:04 | 显示全部楼层
本帖最后由 精英板 于 2022-11-15 20:45 编辑

printf("%c", ‘%’);或者
printf("123%%123\n");试试
回复

使用道具 举报

3

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
559
金钱
559
注册时间
2018-10-3
在线时间
107 小时
发表于 2022-11-16 12:06:06 | 显示全部楼层
本帖最后由 wklhwkl 于 2022-11-16 12:07 编辑

#define MYLOG(format,...) do {printf("XXXXXXXXX "format"\r\n",##__VA_ARGS__); } while(0)

用法  MYLOG("%d,%d",a,b); //和printf一样的用法。 只是前面会多出了XXXXXXXX

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-11-16 23:43:11 | 显示全部楼层
百度printf的用法即可。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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