这两个函数的头文件要求:stdio.h就OK
=================================================================
【printf】函数格式说明的一般形式:
%[标识][输出最小宽度][.精度][长度][类型]标识:[-]左对齐,[+]输出符号,[#]在八进制和十六进制数前显示前导0、0x ,[空格]正数空格代替正号,负数用减号
最小宽度:实际位数多于定义的宽度,按实际位数输出, 少于定义的宽度,就补空格
精度:[输出整数]表示至少输出数字个数,不足补0,多则原样输出
[输出实数]表示小数点后至多输出的个数,不足补0,多则舍入
[输出字符串]表示输出字符个数,不足补空格,多则截去超过部分
printf("%5d\n", 789); --> __789
printf("%5d\n", 123456); --> 123456
printf("%-5d\n", 789); --> 789__
printf("%+5d\n", 789); --> _+789
printf("%8.4f\n", 1.2312345); --> __1.2312
printf("%8.7f\n", 1.23123); --> 1.2312300
printf("%7.5s\n", "chinese"); --> __chine
printf("%7.2s\n", "chinese"); --> _____ch
下面我假设一个"优先级",表示优先处理等级
个人总结:标识和精度的优先级大于最小宽度的优先级
长度:[h]按短整型输出 [l]按长整形或双精度型输出
例子:long n = 123456; printf("%ld", n);-->123456 如果是printf("%hd", n);--> -7616
类型:类型就是[d][o][x][u][f][e][g][c][s][%]这些
=========================================================
【scanf】函数没有printf复杂,一般形式为:
%[附加格式][类型]
附加格式: [l]用于输入长整形或double型
[h]用于输入短整型
[M]指定输入数据所占宽度(这个宽度应该是正整数)
[*]表示本输入项在读入后不赋给相应的变量
类型:类型就是[d][o][x][u][f][e][g][c][s][%]这些