文章开头我先道个歉,昨天没有更新文章,实在对不住。昨天感冒实在严重,感觉都快game over了,实在受不了,下班到家吃过饭就睡了,一晚上出了很多汗,半睡半醒的状态,一直睡到今天七点多。不过大家也不用担心,今天感觉感冒好多了,没有头疼那些症状了,就是流了一天鼻涕,咳了一整天。
上一篇文章已经介绍如何使用格式化输入函数scanf,今天的文章要介绍一下与它对应的格式化输出函数printf。同样这部分内容建议初学者做初步了解,不必深究。
格式化输出函数printf
printf函数可格式化输出任意数据列表,调用格式为:printf(格式控制符,输出列表);
说明:
- 格式控制由输入格式说明和普通字符组成,必须用双引号括起来。
- 格式说明由%和格式字符组成,作用是将要输出的字符转换为指定的格式,如%d,%c等。
- 普通字符是在输出时原样输出的字符,一般在显示时起提示作用。
- 输出列表是需要输出的一组数据(可以为表达式和变量),各参数之间用“,”分开。要求格式说明和各输出项在数量和类型上要一一对应,否则将会出现意想不到的错误。
printf函数的格式符见下表:
格式符 | 说明 |
---|---|
d(或i) | 以带符号的十进制形式输出整数,正数的(+)号忽略不输出 |
u | 以无符号十进制形式输出整数 |
x(或X) | 以十六进制无符号形式输出整数(不输出前导符0x) |
o(字母) | 以八进制无符号形式输出整数(不输出前导符0) |
c | 输出一个字符 |
s | 输出字符串 |
f | 以小数形式输出单、双精度,隐含输出6位小数 |
e(或E) | 以指数形式输出单、双精度,隐含输出6位小数 |
g(或G) | 自动选用%f、%e或%E格式中输出宽度较小的一种使用 |
d格式符:
参数 | 说明 |
---|---|
%d | 输出数字长为变量数值的实际长度 |
%md | 输出m位(不足补空格,大于m位时按实际长度输出) |
%-md | m含义同上。左对齐输出 |
%ld | l(小写字母)表示输出“长整形”数据 |
%mld | 指定长整形输出宽度m位,左边补空格;否则,按实际位数输出 |
%0md,%0mld | 0(数字0)表示位数不足m时补0 |
例如,如下程序段
#include<iostream>
using namespace std;
int main()
{
int i=1;
long j=123;
printf("%d,%2d,%03d,%ld,%-4ld,%05ld",i,i,i,j,j,j);
return 0;
}
输出结果为:1, _1,001,123,123_ ,00123
f格式符
参数 | 说明 |
---|---|
%f | 按实数格式输出,整数部分按实际位数输出,6位小数 |
%m.nf | 总位数m(含小数点),其中有n位小数 |
%-m.nf | 同上,左对齐 |
s格式符
参数 | 说明 |
---|---|
%s | 按实际宽度输出一个字符串 |
%ms | m指定宽度(不足时左补空格,大于时按实际宽度输出) |
%-ms | 左对齐,不足时右补空格 |
%m.ns | 输出占m个字符位置,其中字符数最多n个,左补空格 |
%-m.ns | 同上,右补空格 |
ok,今天内容就到这吧,大家找些题目练习一下,我要跑jio睡觉了,感冒难受^_^