C/C++格式化输入与输出(位宽,左右对齐,%d,%f等)总结

C语言的格式化输入与输出

输入

  • scanf()格式字符:

    • %c,输入一个字符(包括空白字符)
    • %s,输入字符串(碰到空白字符停止)
    • %d,输入十进制int型数
    • %f、%e,输入float型数
    • %u,输入无符号int型数
  • scanf()格式修饰符

    • m:输入数据的位宽

      ​ eg:%*(m)d 代表跳过m个字符; %(m) 代表自宽,即读取x个字符

      #include<stdio.h>
      int main()
      {
      	int a,b;
      	scanf("%*c%2d%*2d%3d",&a,&b);	//%*C表示忽略一个字符 
      	printf("a=%d,b=%d\n",a,b);
      	return 0;
      }
      

      在这里插入图片描述

    • l:%ld,%lu,表示输入long型;%lf,%le,表示输入double型

    • L:%Lf,%Le,表示输入long double型

    • h:%hd,表示输入short型

    • ll,%lld,表示输入long long型

输出

  • %d,%ld,%lld,%hd分表表示输出int,long,long long,short型

  • %u,%lu,%llu,%hu分表表示输出无符号int,long,long long,short型

  • %o,表示以八进制无符号整型输出,在百分号前加#可输出前缀

  • %0x,表示以十六进制无符号整型输出,在百分号前加#可输出前缀

  • %f,表示以小数形式(6位小数)输出float,double型

  • %e,表示以标准指数形式输出float,double型

    #include<stdio.h>
    int main()
    {
    	float a=1234.144;
    	float b=0.000124414;
    	float c=-23434.1;
    	printf("a=%e\nb=%e\nc=%e",a,b,c);
    	return 0;
    }
    

    在这里插入图片描述

控制输出的左右对齐与位宽

  • 输出整数:eg:%12d,即每一位输出的都有12位,且向右对齐,位数不够向前补空格。%-12d,即每一位输出的都有12位,且向左对齐,位数不够向后补空格。

  • 输出小数:eg:%7.2f,其中7指的是最后输出总的占位符为7位,小数点也占一位,右对齐;其中2指的是保留最后的2位小数(遵循四舍五入原则)

    #include<stdio.h>
    int main()
    {
    	int a=123;
    	double b=123.3535;
    	printf("a=%6d\na=%-6d\n",a,a);
    	printf("b=%12.1f\nb=%-12.1f",b,b);
    	return 0;
    }
    

    在这里插入图片描述

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forward♞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值