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.

****************************/
相关推荐
q5673152319 分钟前
C#编写HttpClient爬虫程序示例
开发语言·爬虫·python·c#
CN.LG1 小时前
Java List<JSONObject> 中的数据转换为 List<T>
java·开发语言
精彩漂亮ing1 小时前
CExercise_07_1指针和数组_3数组元素求和
c语言
magic 2452 小时前
《Maven高级应用:继承聚合设计与私服Nexus实战指南》
开发语言·nexus
小画家~2 小时前
第十八:GC 垃圾回收
java·开发语言·jvm·golang
淳于韻珊3 小时前
Java语言的散点图
开发语言·后端·golang
mmmayang5 小时前
Golang 项目平滑重启
开发语言·后端·golang
褚翾澜5 小时前
Go语言的可选链
开发语言·后端·golang
程序员小杰@5 小时前
AI前端组件库Ant DesIgn X
开发语言·前端·人工智能
Aerkui6 小时前
Python高阶函数-eval深入解析
开发语言·python