输出printf
%[flags][width][.prec][hIL]type
[flag]
printf("%7d\n",123);//右对齐
printf("%-7\n",123);//左对齐
输出:
123 (前面有四个空格,总共占七个字符)
123
printf("%+7d\n",123);
printf("%-7d\n",123);
printf("%-+7d\n",123);
printf("%+-7d\n",123);
printf("%-+7d\n",-123);
printf("%-7d\n",-123);
输出:
+123 (前面有三个空格,包括+号一共占七个字符)
123
+123
+123
-123
-123
printf("%07d\n",123);//前面填充0
printf("%-7d\n",123);//左对齐没有地方填充0了
输出:
0000123
123
[width] 或 [prec]
printf("%7.2f\n",123.0);
//表示输出的浮点数有9个字符(包括空格小数点等符号),2位小数
输出:
123.00 (前面有一个空格占一位,总共有七位字符)
printf("%*d\n",6,123);
//表示6填到*号位置,123用来满足%d
输出:
123 (前面有三个空格占三位)
[hIL]
type
//%n的使用:
//%n表示到它所在的位置之前已经输出了多少个字符,赋给后面指针所指的那个变量里面去
printf("%d%n\n",12345,&num);
printf("%d\n",num);
输出:
12345
5
printf("%dabc%n\n",12345,&num);
printf("%d\n",num);
输出:
12345abc
8
输入scanf
%[flag]type
[flag]
//*号的含义是跳过
scanf("%*d%d",&num);
printf("%d\n",num);
输入:
123 456
输出:
456
type
//%i可以将十进制、八进制、十六进制的整数以十进制的形式输出
scanf("%i",&num);
printf("%d\n",num);
输入:123
输出:123
输入:0x12 (十六进制)
输出:18
输入:012 (八进制)
输出:10
printf和scanf的返回值
printf的返回值是读入的项目数
scanf的返回值是输出的字符数
int i1=scanf("%i",&num);
int i2=printf("%d\n",num);
printf("%d %d",i1,i2);
输入:1234
输出:
1234 //第二行的输出
1 5 //i1=1代表有一个1234,i2=5代表有五个字符数(包括“”中后面的\n)