格式化输入输出

格式化输入输出

  • printf

    • %[flags] [width] [.prec] [HIL] type
  • scanf

    • %[flag] type
#include

int main(int argc, int const *argv[])
{
    printf("%9d\n", 123);
    printf("%-9d\n", 123);
    
    return 0;
}
      123
123

%[flags] [width] [.prec] [HIL] type

Flag 含义
- 左对齐
+ 在前面放+或者-
(space) 正数留空
0 0填充
width或prec 含义
number 最小字符数
* 下一个参数是字符数
.number 小数点后的位数
.* 下一个参数是小数点后的位数
//  number  最小字符数
#include

int main(int argc, char const *argv[])
{
    printf("%9.2d\n", 123.0);
    
    return 0;
}
   123.00
// * 下一个参数是字符数
#include

int main(int argc, char const *argv[])
{
    printf("%*d\n", 6, 123);
    printf("%9.2f\n", 123.0);
    
    return 0;
}
   123
   123.00
类型修饰 含义
hh 单个字节
h short
l long
ll long long
L long double
type 用于 type 用于
i或d int g float
u unsigned int G float
o 八进制 a或A 十六进制浮点
x 十六进制 c char
X 字母大写的十六进制 s 字符串
f或F float,6 p 指针
e或E 指数

scanf:%[flag] [type]

flag 含义 flag 含义
* 跳过 l long,double
数字 最大字符 ll long long
hh char L long double
h short

printf和scanf的返回值

  • 读入的项目数
  • 输出的字符数
  • 在要求严格的程序中,应该判断每次调用scanf或printf的返回值,从而了解程序运行中是否存在问题
#include

int main(int argc, char const *argv[])
{
    int num;
    int i1 = scanf("%i", &num);
    int i2 = printf("%d\n", num);
    printf("%d:%d\n", i1, i2);
    
    return 0;
}
12
12
1:3

你可能感兴趣的:(格式化输入输出)