黑马程序员技术交流社区

标题: printf("%2d%*2s%1d",&x,&y); 是什么意思 [打印本页]

作者: 初楠    时间: 2015-4-27 14:18
标题: printf("%2d%*2s%1d",&x,&y); 是什么意思
刚才看到一个程序     麻烦问下%2d    %2s   什么意思  求大神指导
作者: 变味的面包    时间: 2015-4-27 14:33
%2d表示输出时这个int型的数占2个字符,不足就填空格,多出就无视它, 例如:你输出的数是2,他会在2前面加一个空格输出为 " "2 如果你输出的数值超过了了两位 这个%2d的效果就等同于%d。 这类一般用于数据输出的对齐
作者: 逆流瞅瞅    时间: 2015-4-27 14:35
分别打印出x,y的内存地址,%2d读入两字符并打印出来,%*2s,忽略读到的两个输入的字符
作者: owlwgmt7    时间: 2015-4-28 11:53
学习了

作者: 转街过巷    时间: 2015-4-28 13:34
%2d表示以整数格式输出,中间的2表示如果输出不足两位则以空格补齐,多于两位则截取两位;%*2s表示跳过两个字符;%1d表示以整数格式输出一位。只是参考。楼主应该给出上下文让我们更好理解。
作者: kailee    时间: 2015-4-28 13:47
这里涉及到printf()的转换说明修饰符知识,可以在%和定义转换字符之间通过插入修饰符对基本的转换说明加以修改。
你提到的%2d,它指示应该产生宽度为2的字段,但如果超过这个字段,会自动扩展以适应数字的长度。%2s同理可以分析。
作者: lucky_francis    时间: 2015-4-28 23:43
2 表示用页面占2个空格位输出,如果原长度不足2位则用空格补齐,如果多于2位,则原样输出
作者: shenxian88    时间: 2015-4-30 10:41
这里是printf还是scanf




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2