C语言中的printf与scanf函数

1. printf函数的格式字符串

① %-md:左对齐,若m比实际少时,按实际输出,不足右补空格

#include<stdio.h>
int main(void){
	int a = 12; 
	printf("%5d\n", a);
	return 0;
} 

输出:

② %md  :右对齐,若m比实际少时,按实际输出,不足左补空格

与上面的%-md类似

③  %m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
  例如: "%7.2s"   输入NAME
  输出"     NA"(五个空格)

#include<stdio.h>
int main(void){
	printf("%s\n", "NAME");
	printf("%7.2s\n", "NAME");
	return 0;
} 

④ %m.nf:输出浮点数,m为宽度,n为小数点右边数位(输出包括小数点的m位数字,不足的话左补空格)
 e.g.  "%3.1f"    输入3852.99
 输出3853.0 

2. printf函数的格式控制的完整格式:
%  -  0  m.n  l 或 h  格式字符
下面对组成格式说明的各项加以说明:
① %:表示格式说明的起始符号,不可缺少。
② -:  有-表示左对齐输出,如省略表示右对齐输出。
③ 0: 有0表示指定空位填0,如省略表示指定空位不填。
④ m.n:m指域宽,即对应的输出项在输出设备上所占的字符数,n指精度,用于说明输出的实型数的小数位数,没有指定n时,隐含的精度为n = 6位。
⑤ l 或 h : l对整型指long型,对实型指double型,h用于将整型的格式字符修正为short型。


3. scanf函数的格式控制符

%  *  m     l或h     格式字符
① 格式字符与printf函数中的使用方式相同,以%d,%o,%x,%c,%s,%f,%e,无%u格式、%g格式

② 可以指定输入数据所占列宽,系统自动按它截取所需数据。如:
scanf( "%3d%3d", &a, &b);
输入:123456
系统自动将123赋给a,456赋给b

③ %后的“*” 附加说明符,用来表示跳过它相应的数据。例如:
scanf( "%2d%*3d%2d", &a, &b);
如果输入如下信息:1234567。将“12 ”赋给a,“67 ”赋给b。第二个数据“345”被跳过不赋给任何变量

④ 输入数据时不能规定精度,例如:
scanf("%6.2f", &a);
是不合法的,不能企图输入:123.45而使a的值为123.45

发布了498 篇原创文章 · 获赞 133 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/qq_39445165/article/details/101383514
今日推荐