标志含义-该项目是左对齐的; 也就是说,它从字段的左侧开始打印。 示例:“%- 20s”。
编程学习网为您整理以下代码实例,主要实现:printf()使用修饰符和标志,希望可以帮到各位朋友。
标志 | 含义 |
---|---|
- |
该项目是左对齐的; 也就是说,它从字段的左侧开始打印。 示例:“%- 20s” 。 |
+ |
如果为正,则带符号值显示加号,如果为负,则带有减号。 示例:“%+ 6.2f” 。 |
|
如果为正,则显示带有前导空格(但没有符号)的带符号值,如果为负,则带有减号。 A+ 标志覆盖空格。 示例:“%6.2f” 。 |
# |
使用替代形式进行转换规范。 示例:“%#o” ,“%#8.0f” 和“%+#10.3E” 。 |
0 |
对于数字形式,使用前导零填充字段宽度而不是空格。 示例:“%010d” 和“%08.3f” 。 |
使用修饰符和标志的示例
#include <stdio.h>
#define PAGES 959
int main(voID)
{
printf("*%d*\n", PAGES);
printf("*%2d*\n", PAGES);
printf("*%10d*\n", PAGES);
printf("*%-10d*\n", PAGES);
return 0;
}
执行上面示例代码,得到以下结果:
$gcc -o main *.c
$main
*959*
*959*
* 959*
*959 *
一些浮点数的组合:
#include <stdio.h>
int main(voID){
const double RENT = 3852.99; // const-style constant
//
printf("*%f*\n", RENT);
printf("*%e*\n", RENT);
printf("*%4.2f*\n", RENT);
printf("*%3.1f*\n", RENT);
printf("*%10.3f*\n", RENT);
printf("*%10.3E*\n", RENT);
printf("*%+4.2f*\n", RENT);
printf("*%010.2f*\n", RENT);
return 0;
}
执行上面示例代码,得到以下结果:
$gcc -o main *.c
$main
*3852.990000*
*3.852990e+03*
*3852.99*
*3853.0*
* 3852.990*
* 3.853E+03*
*+3852.99*
*0003852.99*
一些格式标记的说明
#include <stdio.h>
int main(voID)
{
printf("%x %X %#x\n", 31, 31, 31);
printf("**%d**% d**% d**\n", 42, 42, -42);
printf("**%5d**%5.3d**%05d**%05.3d**\n", 6, 6, 6, 6);
return 0;
}
执行上面示例代码,得到以下结果:
$gcc -o main *.c
$main
1f 1F 0x1f
**42** 42**-42**
** 6** 006**00006** 006**
字符串格式示例:
#include <stdio.h>
#define BLURB "Authentic imitation!"
int main(voID)
{
printf("[%2s]\n", BLURB);
printf("[%24s]\n", BLURB);
printf("[%24.5s]\n", BLURB);
printf("[%-24.5s]\n", BLURB);
return 0;
}
执行上面示例代码,得到以下结果:
$gcc -o main *.c
$main
[Authentic imitation!]
[ Authentic imitation!]
[ Authe]
[Authe ]
沃梦达教程
本文标题为:printf()使用修饰符和标志
基础教程推荐
猜你喜欢
- C++输入/输出运算符重载 1970-01-01
- C语言访问数组元素 1970-01-01
- end() 能否成为 stl 容器的昂贵操作 2022-10-23
- C++按值调用 1970-01-01
- 分别使用%o和%x以八进制或十六进制格式显示整 1970-01-01
- C++定义类对象 1970-01-01
- 使用scanf()读取字符串 1970-01-01
- 初始化变量和赋值运算符 1970-01-01
- C++ #define 1970-01-01
- 明确指定任何或所有枚举数的整数值 1970-01-01