C语言中printf()函数,格式输出符

在 C 语言中,printf() 函数的格式输出符(格式说明符)用于控制输出的格式和数据类型。以下是常见的格式说明符及其用法:

基本格式符

打印各种类型的值

格式输出符 数据类型 说明
%d int 输出有符号十进制整数
%u unsigned int 输出无符号十进制整数
%c char 输出单个字符。
%f float/double 输出浮点数(默认保留6位小数
%Lf long double 输出浮点数
%e/%E float/double 科学计数法输出浮点数(如3.14e+1或者3.14E+1)
%g/%G float/double 自动选择 %f 或 %e,省略末尾的零
%s char* 输出字符串(以 \0 结尾的字符数组)
%p void* 输出指针地址(十六进制格式)
%x/%X unsigned int 输出十六进制整数(小写或大写字母)
%o unsigned int 输出八进制整数
%% 输出 % 符号本身
%a/%A float/double 输出浮点数的十六进制表示(C99 起支持,如 0x1.5p+1)
%zd sizeof() 输出数据类型的大小
%zu sizeof() 输出数据类型的大小

示例:

常量 类型 转换说明
12 int %d
0x3 int %#x
'C' char (实际是int) %c
2.34E07 double %e
'\040' char (实际是int) %c
7.0 double %f
6L long int %ld
6.0f float %f
0x5.b6p12 double %a
012 unsigned int %#o
2.9e05L long double %Le
's' char %c
100000 long int %ld
'\n' char %c
20.0f float %f
0x44 unsigned int %#x
-40 signed int %d

格式修饰符

格式输出符 说明
%5d 输出至少 5 字符宽,不足时右对齐填充空格
%-5d 左对齐填充空格
%05d 输出至少 5 字符宽,右对齐并用 0 填充(如 00123)
%.2f 保留 2 位小数
%.5s 最多输出字符串的前 5 个字符
%10.3f 总宽度 10 字符,保留 3 位小数。
%* 动态指定宽度或精度
c 复制代码
int width = 8, precision = 3;
printf("%*.*f", width, precision, 3.14159); // 输出 "   3.142"

转义字符

(1)是字符常量,在内存中实际是按整数类型存储。不可改变不能

(2)表示非打印字符

转义序列 说明
\n 换行
\t 水平制表
\b 退格,移动光标位置,一般不会擦除退回的内容,定义之后不能被修改。
\r 回车,回到当前行前面
\a 发出一声警告

例如:

c 复制代码
/*escape.c -- 使用转移序列*/
#include <stdio.h>
int main(void)
{
	/* code */
	float salary;
	printf("\aEnter your desired monthly salary:");
	printf(" $_______\b\b\b\b\b\b\b");	// \b退格使光标移动到$后面,不会擦去退格内容
	scanf("%f", &salary);	//输入的内容将擦去"_"
	printf("\n\t$%.2f a month is $%.2f a year.", salary, salary * 12.0);
	printf("\rGee!\n");	//	\r回到当前行前面
	return 0;
}

/***************************
输出结果:
Enter your desired monthly salary: $4000.00

Gee!    $4000.00 a month is $48000.00 a year.

****************************/
相关推荐
coding随想41 分钟前
JavaScript中的BOM:Window对象全解析
开发语言·javascript·ecmascript
黑听人1 小时前
【力扣 简单 C】70. 爬楼梯
c语言·leetcode
念九_ysl1 小时前
Java 使用 OpenHTMLToPDF + Batik 将含 SVG 遮罩的 HTML 转为 PDF 的完整实践
java·开发语言·pdf
杜子不疼.1 小时前
二分查找,乘法口诀表,判断闰年,判断素数,使用函数实现数组操作
c语言
yaoxin5211231 小时前
124. Java 泛型 - 有界类型参数
java·开发语言
liulilittle2 小时前
深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
开发语言·网络·c++·tcp/ip·智能路由器·tcp·通信
88号技师2 小时前
2025年6月一区-田忌赛马优化算法Tianji’s horse racing optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
勤奋的知更鸟2 小时前
Java 编程之模板方法模式
java·开发语言·模板方法模式
上单带刀不带妹3 小时前
手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
开发语言·前端·javascript·vue.js·前端框架