C++ printf() 函数
C++ 中的 printf()
函数用于将格式化字符串写入标准输出(stdout
)。它定义在 cstdio 头文件中。
示例
#include <cstdio>
int main() {
int age = 23;
// 打印字符串字面量
printf("我的年龄是 ");
// 打印 int 类型变量
printf("%d", age);
return 0;
}
// 输出:我的年龄是 23
printf() 语法
printf()
的语法是:
printf(const char* format, ...);
其中,
format
是要写入标准输出的字符串...
表示你可以传递多个参数给printf()
。
printf() 参数
printf()
函数接受以下参数:
- format - 指向以 null 结尾的字符串(C 字符串)的指针,该字符串被写入
stdout
。它由字符组成,还包含以%
开始的可选格式说明符。 - ... - 指定要打印数据的其他附加参数。它们按照格式说明符的顺序出现。
printf() 返回值
printf()
函数返回:
- 成功时 - 写入的字符数
- 失败时 - 负值
printf() 函数原型
printf()
函数在 cstdio 头文件中的原型是:
int printf(const char* format, ... );
示例 1:C++ printf()
#include <cstdio>
int main() {
int num = 5;
char my_name[] = "Lincoln";
// 打印字符串和 int 变量
printf("num = %d \n", num);
// 打印字符串和字符数组
printf("我的名字是 %s", my_name);
return 0;
}
输出
num = 5
我的名字是 Lincoln
在这个程序中,我们使用 printf()
函数来打印整数 num
和 C 字符串 my_name
。
printf("num = %d \n", num);
printf("我的名字是 %s", my_name);
这里,
%d
被替换为输出中的num
变量\n
是一个 转义序列 字符,用于打印新行%s
被替换为my_name
C 字符串。## 格式说明符
printf()
函数的 format
参数可以包含以 %
开始的格式说明符。这些说明符会被随后格式字符串后面相应变量的值所替换。
格式说明符包含以下部分:
- 一个前导的
%
符号 flags
- 一个或多个修改转换行为的标志(可选)-
:在字段内左对齐结果。默认情况下是右对齐。+
:结果的符号附加在值的开头,即使对于正结果也是如此。- 空格:如果没有符号,结果开头会附加一个空格。
#
:执行转换的另一种形式。0
:用于整数和浮点数。用前导零而不是空格填充数字。
width
- 一个可选的 *
或整数值,用于指定最小宽度字段。
precision
- 一个可选字段,由 .
后跟 *
或整数或无以指定精度。
length
- 一个可选的长度修饰符,用于指定参数的大小。
specifier
- 转换格式说明符。
printf() 格式说明符原型
printf()
的格式说明符的一般原型是:
%[flags][width][.precision][length]specifier
常用格式说明符
下表列出了一些常用的格式说明符:
格式说明符 | 描述 |
---|---|
% | 一个 % 后跟另一个 % 字符会在屏幕上打印 % |
c | 写入单个字符 |
s | 写入字符字符串 |
d 或 i | 将有符号整数转换为十进制表示 |
o | 将无符号整数转换为八进制表示 |
X 或 x | 将无符号整数转换为十六进制表示 |
u | 将无符号整数转换为十进制表示 |
F 或 f | 将浮点数转换为十进制表示 |
E 或 e | 将浮点数转换为十进制指数表示法 |
A 或 a | 将浮点数转换为十六进制指数表示法 |
G 或 g | 将浮点数转换为十进制或十进制指数表示法 |
n | - 返回到目前为止写入的字符数- 结果写入通过参数指向的值- 参数必须是指向 signed int 的指针 |
p | 写入定义指针的实现定义字符序列 |