首页 软件代码

scanf和printf函数的格式控制


scanf函数

%[*][数据宽度][长度]类型
其中[]中的是选填

  • [*]表示该输入项,读入后不赋值给变量。
例如: scanf("%d %*d %d",&a,&b);
输入1 2 3后
1赋值给a;
2被读取后,但不进行赋值;
3赋值给b;
  • [数据宽度]指定获取的数据长度
例如: scanf("%3d%3d",&a,&b);
输入456789
第一个%3d获取输入的456789的截取前三位,后面的%3d就获取后面的三位。
456赋值给a;
789赋值给b;
  • 长度(l或h)
读入长整型、双精度型或短整型数据
  • 类型格式
d 输入一个十进制整数
o 输入一个八进制整数
x 输入一个十六进制整数
i 输入一个有符号或无符号的十进制、八进制、十六进制整数
u 输入一个无符号十进制整数
f 、e或E、 g或G 输入一个小数形式或指数形式的浮点数
c 输入一个字符
s 输入一个字符串

printf函数

%[标志字符][数据宽度].[精度][长度]类型

  • 标志字符
-表示输出结果左对齐,省略为右对齐
+输出正号负号
#添加前缀,如八进制输出前缀o
空格 输出值为正数是空格,为负数时为符号
  • 数据宽度
表示输出的数据的长度(包括小数点),实际数据超过规定宽度时,按照实际数据输出,否则则以空格或者0补齐
  • 精度
对类型格式控制符f和s有效
f型 表示小数位数
s型输出字符个数,实际数据超出后截取。
  • 长度(l或h)
输出长整型、双精度型或短整型数据
  • 类型
d 十进制整型数据输出。
u 输出无符号整型(unsigned)
c 用来输出一个字符。
f 用来输出实数
o 以八进制整数形式输出
s 用来输出字符串
x和X 以十六进制形式输出整数
E和e 以指数形式输出
G和g 以%f和%e中宽度短的输出
p 输出指针




文章评论