社区
C语言
帖子详情
新手,输出"%"为何要打"%%"而不是"\%",为何这样设定?
木铁柱
2009-12-01 01:37:36
新手,输出"%"为何要打"%%"而不是"\%",为何这样设定?\是转义符啊,应该用\啊。
...全文
237
26
打赏
收藏
新手,输出"%"为何要打"%%"而不是"\%",为何这样设定?
新手,输出"%"为何要打"%%"而不是"\%",为何这样设定?\是转义符啊,应该用\啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
珍惜生命远离CPP
2009-12-02
打赏
举报
回复
[Quote=引用 23 楼 cfoswang 的回复:]
还有,我试了一下,初始化的时候,直接打%也可以,和\%效果是一样的,打%%就会输出%%,这是不是因为%在一般情况下没有特殊意义,只有在printf里作格式控制符?
[/Quote]
说对了,就是这个意思。scanf里面也是格式控制符
bfhtian
2009-12-02
打赏
举报
回复
可以结贴了
zuojunyuan
2009-12-02
打赏
举报
回复
一个是字符串中的%表示,一个是输出的%表示。
木铁柱
2009-12-02
打赏
举报
回复
还有,我试了一下,初始化的时候,直接打%也可以,和\%效果是一样的,打%%就会输出%%,这是不是因为%在一般情况下没有特殊意义,只有在printf里作格式控制符?
木铁柱
2009-12-02
打赏
举报
回复
[Quote=引用 11 楼 akirya 的回复:]
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
char xx[]="\r\b\n\%";
单步调试看看xx的值是什么.
[/Quote]
我照你说的单步调试了一下char xx[]="\r\b\n\%"。
请问你这个是给字符串数组赋值是吗?我还没学到这里。
原来是这样,都被一个一个赋值了,这里用\%,而printf用%%。
我想问一下,这个数组要赋四个值啊,为何还多了一个[4]=0 ''
skyworth98
2009-12-01
打赏
举报
回复
\n\t只是让编译器在生成代码的时候用对应的字符替换,%%是让printf处理的
[Quote=引用 2 楼 pur_e 的回复:]
我也有点不太懂,\n\t不也是printf中用的吗
[/Quote]
vbtraz
2009-12-01
打赏
举报
回复
因为scanf不是语言机制,而是一个函数, 它没资格调整\转义的语法, 只能用%转义, 这样才确保它能控制的了
某某9
2009-12-01
打赏
举报
回复
[Quote=引用 17 楼 jernymy 的回复:]
引用 16 楼 jenf 的回复:
引用 10 楼 lusure 的回复:
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
讲得已经很明白了。
ding
[/Quote]en
Jazzelan
2009-12-01
打赏
举报
回复
[Quote=引用 17 楼 jernymy 的回复:]
引用 16 楼 jenf 的回复:
引用 10 楼 lusure 的回复:
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
讲得已经很明白了。
ding
[/Quote]
确实!!!!
jernymy
2009-12-01
打赏
举报
回复
[Quote=引用 16 楼 jenf 的回复:]
引用 10 楼 lusure 的回复:
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
讲得已经很明白了。
[/Quote]
ding
jenf
2009-12-01
打赏
举报
回复
[Quote=引用 10 楼 lusure 的回复:]
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
[/Quote]
讲得已经很明白了。
珍惜生命远离CPP
2009-12-01
打赏
举报
回复
[Quote=引用 13 楼 cfoswang 的回复:]
引用 11 楼 akirya 的回复:
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
char xx[]="\r\b\n\%";
单步调试看看xx的值是什么.
大哥你这个应该是错误的吧,char是单字符型的"\r\b\n\%"是四个字符了,会输出错误吧?
[/Quote]
编译下试试再说对不对
z569362161
2009-12-01
打赏
举报
回复
不知道.
还有我只差5分就两个小三角了,能不能给5 分啊!谢谢!
木铁柱
2009-12-01
打赏
举报
回复
[Quote=引用 11 楼 akirya 的回复:]
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
char xx[]="\r\b\n\%";
单步调试看看xx的值是什么.
[/Quote]
大哥你这个应该是错误的吧,char是单字符型的"\r\b\n\%"是四个字符了,会输出错误吧?
木铁柱
2009-12-01
打赏
举报
回复
[Quote=引用 10 楼 lusure 的回复:]
引用 3 楼 cfoswang 的回复:
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
[/Quote]
大哥你讲解太好了,过来亲一个,ber~~~~~~~~~
珍惜生命远离CPP
2009-12-01
打赏
举报
回复
[Quote=引用 3 楼 cfoswang 的回复:]
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
[/Quote]
char xx[]="\r\b\n\%";
单步调试看看xx的值是什么.
lusure
2009-12-01
打赏
举报
回复
[Quote=引用 3 楼 cfoswang 的回复:]
1楼我看的不是很明白,那为何\ ' "要打\\ \' \",而不打%\ %' %",所以打\的话printf能看到啊,不懂。
[/Quote]
打个比方吧,
printf("\%");
编译器编译时,吧"\%"处理为"%",当程序运行时存储在内存里的字符串其实是 "%"
也就是printf()函数在运行时接收到的字符串是"%",而"%"是printf函数作为格式输出的符号,自然无法输出。而"%%"在printf中则可以得到特殊处理。输出"%",这个跟编译器处理"\\"是一个道理。
liangyonglou
2009-12-01
打赏
举报
回复
使用'\'是给编译器理解的,%是给printf 使用的,要是使用'\'编译的时候就给转化了,到printf的时候就不认识了!
highball
2009-12-01
打赏
举报
回复
看着个帖子真需要勇气啊
invisibleman0
2009-12-01
打赏
举报
回复
LZ头像太销魂了,解答不了@!!
加载更多回复(6)
FPGA研发之道(5)从零开始调试FPGA
对于
新手
来说,如何上手调试FPGA是关键的一步。 对于每一个新设计的FPGA板卡,也需要从零开始调试。 那么如何开始调试? 下面介绍一种简易的调试方法。 (1) 至少
设定
一个输入时钟 input sys_clk; (2) ...
串级PID为什么外环
输出
时内环的期望值
所以更真实的控制图应该是这样的。我们应该感谢现在的执行器做的足够好,他们通常都有自己的驱动器,我们只需要通过
输出
一些简单的电平信号,驱动器就会帮助我们控制执行器。典型的执行器就是电机,电机的驱动器,...
关于多个数据
输出
让数据
输出
更简洁直观的一个小方法。
学习初期,经常
输出
大量的数字或者 字符串,但是
输出
后,不是一排挨着一起,就是一个
输出
占一排,并不美观。 并且还会影响查看以及判断。 在
输出
大量数据时,可以添加一个:if语句自动换行 如果我要
输出
5个数据就...
Java利用循环,在控制台打印出菱形。
这个问题是很多
新手
老生常谈的问题,今天把代码贴出来,希望能帮到你们打开思路,而不是复制粘贴。 思路: 首先要
设定
行数,并且这个行数是奇数,因为偶数做出来的菱形有点歪。。。 再计算菱形最多的一行的“*”...
python编程实践:格式化字符串
输出
的四种方式详解
Python字符串格式化
输出
,在python编程中,是一个非常重要的知识点,掌握了它,你就可以
输出
各种格式要求的文本内容,并生成相关要求的文件。
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章