C语言中,%m.ns与%m.nf的区别

%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。可以理解为m前为正,则字符串右对齐。
%-ms:如果串长小于m,则在m列范围内,m前为负,字符串左对齐,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

例如:

#include <stdio.h>
int main(){
   
    char *a;
    a="mynameisma";
    printf("%3.10s\n",a);    //这里m虽然取值为3,但是n的值大于m,所以取值n,保证n个字符输出
    printf("%12.3s\n",a);    //输出"         myn"注意,n取的是元素个数,不包括空格
	return 0;
}

%f:例如:printf("%f", 12.5)输出“12.500000”浮点型数据(不包括双引号)。(%f小数点后默认保留6位小数)
%mf:输出的数据占m列,如字符串本身长度大于m,则突破获m的限制,将浮点型对象全部输出。若串长小于m,则左补空格。可以理解为m前为正,则浮点型对象右对齐。
%-mf:如果浮点型对象长小于m,则在m列范围内,m前为负,浮点型对象左对齐,右补空格。
%m.nf:输出占m列,浮点型对象保留n个小数位。
%-m.nf:其中m、n含义同上,m为输出的宽度,n为保留的小数位数,若浮点型对象长小于m,则在m列范围内,m前为负,浮点型对象左对齐,右补空格

例如:

#include <stdio.h>
int main(){
   
 
    float a=12.3;
    printf("%10.3f",a);
    
	return 0;
}

输出结果为:"    12.300",注意没有双引号输出。
#include <stdio.h>
int main(){
   
 
    float a=12.3;
    printf("%-10.3f",a);
    
	return 0;
}
输出结果为:"12.300    ",注意没有双引号输出。

 

  • 37
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值