C++中`printf`格式化输出的实用案例和说明
以下是C++中printf
格式化输出的实用案例和说明:
- 基础整数输出
int num = 123;
printf("十进制: %d\n", num); // 输出: 123
printf("八进制: %o\n", num); // 输出: 173
printf("十六进制: %x\n", num); // 输出: 7b
- 浮点数控制
double pi = 3.1415926;
printf("默认: %f\n", pi); // 输出: 3.141593
printf("保留2位: %.2f\n", pi); // 输出: 3.14
printf("科学计数: %e\n", pi); // 输出: 3.141593e+00
- 字符串和字符
char ch = 'A';
char str[] = "Hello";
printf("字符: %c\n", ch); // 输出: A
printf("字符串: %s\n", str); // 输出: Hello
printf("前3字符: %.3s\n", str);// 输出: Hel
- 宽度和对齐
int hour = 9, min = 5;
printf("时间: %02d:%02d\n", hour, min); // 输出: 09:05
printf("左对齐: %-10s\n", str); // 输出: Hello
#include <iostream>
using namespace std;int main() {int hour =9, min = 5;char str[] = "hello"; char str1[] = "world";printf("时间:%02d:%02d\n",hour,min);printf("左对齐:%-10s%s\n",str,str1); //str 占10个字符宽度 -左对齐(默认右对齐), hello 为5个字符,后面补5字符,printf("右对齐:%10s%s\n",str,str1);return 0;
}
输出:
时间:09:05
左对齐:hello world
右对齐: helloworld
- 64位整数输出
long long bigNum = 123456789012345;
printf("64位数: %lld\n", bigNum); // 输出: 123456789012345
- 混合输出示例
printf("姓名: %-10s 年龄: %03d 成绩: %.1f\n", "Alice", 18, 95.5);
// 输出: 姓名: Alice 年龄: 018 成绩: 95.5
关键点说明:
%d
用于普通整数,%ld
用于长整数,%lld
用于64位整数%.2f
控制小数位数,%5d
控制输出宽度%02d
实现前导零填充,常用于时间格式化- 格式说明符必须与变量类型严格匹配
注意:虽然C++推荐使用cout
,但printf
在需要精确控制输出格式时仍然很有价值。对于复杂项目,建议使用C++的流式输出或格式化库。