C语言输入输出格式

怎么知道要用%3d还是要用%d???... 怎么知道要用%3d还是要用%d??? 展开
 我来答
写在枫叶上的故事
推荐于2019-08-07 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.5万
展开全部

在C语言中,输入使用的是scanf函数,scanf函数的格式为scanf(格式控制,地址列表),如scanf("%d"&a)。

输出使用的是printf()函数,printf函数的格式为printf(格式控制,输出表列),如printf("%d\n",a)。在输出时可以在"%"和字母之间插进数字表示最大场宽。可以根据需要输出数字的位数来决定“%”前的数值。

如:%3d表示输出3位整型数, 不够3位右对齐。

%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为7,小数点占一位, 不够9位右对齐。

%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

扩展资料

C语言输入输出时的规则:

一、格式说明符个数与输入数据个数不相等的情况:

当我们输入数据时,只要没有按回车键,所输入的数据都还存放在缓冲区,并没有存入变量中。按【Enter】键后,scanf()函数才会从缓冲区中取走数据。缓冲区是一个先进先出的队列,即取走数据的时候,遵循先输入的数据先取走的原则。

scanf函数的格式说明符有几个就要取几次数据,只要碰到格式说明符就必须把数据取走,至于是不是要把取走的数据存放起来,就得看数据列表中的数据个数。没取完的数据继续留在缓冲区中。

二、宽度输出的情况:

1、在%和格式字符之间加入一个整数来控制输出数据所占宽度

2、在%和格式字符f之间加入一个“整数1. 整数2”来控制输出数据的格式。

整数1:整个输出数据占的总宽度

整数2:输出实数的小数部分的个数

注意:先用整数2处理小数部分,再用整数1处理整个数据,包括已处理好的小数部分

三、宽度输入的情况:

宽度输入指的是在%和格式说明符d之间加入一个整数。如:scanf("%2d", &x);

注意:

1、%d与%1d是不同的,它们具有不同的含义。

2、 当宽度小于数据的实际宽度时,截取指定宽度的部分作为一个数进入缓冲区,再将剩余部分作为另一个数放入缓冲区。

参考资料来源:百度百科——scanf

百度百科——printf()

cunfu49
2013-01-02 · TA获得超过1528个赞
知道小有建树答主
回答量:829
采纳率:58%
帮助的人:240万
展开全部

常用的格式符还有 %n.mf --   浮点数,  总长n ,m位小数 。(可不用,取默认长)

 %c  -- 单字符, %s  -- 字串 ,%t  -- 固定下一区(8 位) 

注:printf()中每个格式符都要与同类型的变量挂钩,一个对一个。

理解原样照印:设 x= 3   y=5 

           printf(“x=%d  y=2*x-1=%d”,x,y); 

 输出 为           x=3  y=2*x-1=5

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
推荐于2017-09-17 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5661万
展开全部
%3d 是根据自己的需要决定的。例如输出数为1到3位,你考虑各行输出数据对齐,
你可以用 %3d, 例如:
int a=1,b=18,c=123;
int d=23,e=35,f=56;
printf("%3d %3d %3d\n",a,b,c);
printf("%3d %3d %3d\n",d,e,f);
白白1 空白18 空123
白23空白35空白56
------
%d 是默认格式。
----
输入%3d 在特殊情况下用,一般用 %d 灵活。
特殊的例子:
int a,b;
scanf("%3d%3d",&a,&b); // 输入数据之间无空隔,例如: 123456
printf("%d %d",a,b); // 输出 123 456
如果不用%3d%3d, 123456 就会被看成一个数, 不处理成3位3位。
追问
按你这样说的话那么如果我把上面的那个例子全部都用%3d也是可以的???
追答
是的。
另外:a=12345; printf("%3d",a); 输出 数据位数大于 给定 的 3 位,程序自动 输出 12345, 不会只输出出123 或 345。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潘达lya
2013-01-02 · TA获得超过1476个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:443万
展开全部
格式的完整版是-0m.n(l或h)+格式字符 我们平常用的都是缺省格式很多位置没填,你首先要弄明白格式的意思。。。。
-是对齐方式,0是空位的填补方式(缺省表示填空格否则是填0) m是整个数占用字符个数,n是小数点后的位数,l或h是长度标识,l就是long的意思,长整形或双精度,h就是short的意思用于短整型(不填就是单精度或整形)。。。d就是输出格式可以是16进制10进制,8进制,你用的d就是10进制的意思。。。。
3d就是m处填3,格式字符是10进制,所以意思就是3位十进制数,如果大于3位多出的会不输出。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Simple于小歪
2013-01-02
知道答主
回答量:14
采纳率:0%
帮助的人:4.5万
展开全部
%d是直接输出,%3d是要占三个字符的位置,
比如要输出百度这两个字
你输出%d就是直接输出个:百度
输出%3d就是输出: 百度
就是这个意思。
希望回答能帮到你
%3d用的时候一般是让程序美观
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式