格式化文件输入输出
- printf
- % [flags] [width] [.prec] [hIL]type
- scanf
- % [flags] type
printf
- flags
- [width] [.prec]
width是整个字符的个数,小数点除外。
.prec表示实数的小数位数。
printf("%*d\n",6,1997); // *=6 类似于define宏定义的替换,提升代码灵活度
printf("%.*f\n",3,1997.12345); // .*=.3 类似于define宏定义的替换,提升代码灵活度
- [hIL]不怎么用
- type 牢记
printf代码演示:
#include<stdio.h>
int main()
{
printf("%9d\n",1997); //默认右对齐
printf("%-9d\n",1997); //-左对齐
printf("%-+9d\n",1997); //-左对齐输出+号
printf("%-9.4f\n",1997.7991); //.4表示小数点保留4位,9表示实数整体显示9位,不满足则空位。
printf("%-9.4f\n",1997.799123); //仅能有9位,23被舍去
printf("%-9.1f\n",1997.79911997); //.1只输出1位小数
printf("%02d:%02d:%02d\n",23,1,9); //右对齐填充0,常用于表示时间或年月日
printf("%*d\n",6,1997); // *=6 类似于define宏定义的替换,提升代码灵活度
printf("%.*f\n",3,1997.12345); // .*=.3 类似于define宏定义的替换,提升代码灵活度
printf("%hhd\n",1997); // hh是单个字节编译器会只拿第一个字符进行输出
return 0;
}
代码结果
scanf
- flag
- type
printf和scanf的返回值
- 读入的项目数
- 输出的字符数
- 在大型项目中需要判断printf和scanf的返回值