printf和scanf输出格式

在做蓝桥杯的时候有一些输出的格式错误, 之前老是记不全,现在总结一下

#include<bits/stdc++.h>
using namespace std;
int main()
{   
   //整型的输入和输出格式    
   
    //输出时间 格式为  08:00 
    int h,m;
    scanf("%d%d",&h,&m); 
    printf("%02d:%02d\n",h,m) ; //2表示指定宽度为两位,0表示不够两位前边补充0 
    
   int  a,b,c,d;
   scanf("%2d%3d%*d%d%d",&a,&b,&c,&d);             // l 代表输入长整型
                                                   // 数字2 代表 指定数据所占的宽度
                                                   // 代表输入项不会赋值给相应的变量  
   printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d) ;
   printf("a=%4d,b=%-4d,c=%+4d,d=%%d\n",a,b,c,d) ; //- 输出结果左对齐,右边补充空格,
                                                   //4 实际位数>4 按照实际输出 ,<4右对齐左边补充空格 ,如果遇到- 左对齐,右边补充空格,
                                                  //+输出正号
                                                  //如果想要输出%  就%%d
    
 //实型数据的输入和输出格式   
    float  f=3.14159; 
    double x=3.1415926;
 // scanf("%f%lf",&f,&x); //f   以小数形式输入单精度数 
                         // lf 以小数形式输入双精度数  
                         //使用scanf()函数输入 实型数据时不能指明精度 %.nf格式是错误的 
    printf("f=%f,d=%f\n",f,x);  //单精度和双精度都是 %f  //默认情况下小数点都是后六位 ,不够的话会自动补充0 
    printf("f=%f,d=%.3f\n",f,x) ;  //.3时小数点后三位,如果实际输出>3 超出部分四舍五入,  最后是3.142 
    printf("f=%9f,d=%.3f\n",f,x) ;   //3.141590 是8位 ,所以前面会有一个空格 
    printf("f=%9.3f,d=%.3f\n",f,x) ;            
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值