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.

****************************/
相关推荐
CHANG_THE_WORLD3 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
Franklin25 分钟前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
郝学胜-神的一滴38 分钟前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
John.Lewis1 小时前
数据结构初阶(13)排序算法-选择排序(选择排序、堆排序)(动图演示)
c语言·数据结构·排序算法
柯南二号1 小时前
【Java后端】MyBatis-Plus 原理解析
java·开发语言·mybatis
我是哈哈hh2 小时前
【Node.js】ECMAScript标准 以及 npm安装
开发语言·前端·javascript·node.js
Sammyyyyy3 小时前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
丑小鸭是白天鹅4 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
William一直在路上4 小时前
Python数据类型转换详解:从基础到实践
开发语言·python
看到我,请让我去学习4 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt