当前位置: 首页 > news >正文

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

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

基本格式符

打印各种类型的值

格式输出符数据类型说明
%dint输出有符号十进制整数
%uunsigned int输出无符号十进制整数
%cchar输出单个字符。
%ffloat/double输出浮点数(默认保留6位小数
%Lflong double输出浮点数
%e/%Efloat/double科学计数法输出浮点数(如3.14e+1或者3.14E+1)
%g/%Gfloat/double自动选择 %f 或 %e,省略末尾的零
%schar*输出字符串(以 \0 结尾的字符数组)
%pvoid*输出指针地址(十六进制格式)
%x/%Xunsigned int输出十六进制整数(小写或大写字母)
%ounsigned int输出八进制整数
%%输出 % 符号本身
%a/%Afloat/double输出浮点数的十六进制表示(C99 起支持,如 0x1.5p+1)
%zdsizeof()输出数据类型的大小
%zusizeof()输出数据类型的大小

示例:

常量类型转换说明
12int%d
0x3int%#x
‘C’char (实际是int)%c
2.34E07double%e
‘\040’char (实际是int)%c
7.0double%f
6Llong int%ld
6.0ffloat%f
0x5.b6p12double%a
012unsigned int%#o
2.9e05Llong double%Le
‘s’char%c
100000long int%ld
‘\n’char%c
20.0ffloat%f
0x44unsigned int%#x
-40signed int%d

格式修饰符

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

转义字符

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

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

例如:

/*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.

****************************/
http://www.dtcms.com/a/21698.html

相关文章:

  • 【vue3】响应式的几个重要API
  • 一学就废|Python基础碎片,Pathlib模块
  • 一.AI大模型开发-初识机器学习
  • vue3.x 的provide 与 inject详细解读
  • 用C++实现点到三角形最小距离的计算
  • 基于springboot的超时代停车场管理平台(源码+文档)
  • LabVIEW与USB设备开发
  • 关于post和get的请求参数问题
  • [JVM篇]虚拟机性能监控、故障处理工具
  • TDengine 数据备份/还原工具 taosdump
  • C#开源大型商城系统之B2B2C+O2O一体化_OctShop
  • kubectl top输出与Linux free命令不一致原因?
  • React常用库
  • 【PyTorch】torch.optim介绍
  • MySQL
  • CCF-CSP第19次认证第一题——线性分类器【NA】
  • Deep seek学习日记1
  • 人工智能 - 主动视觉可能就是你所需要的:在双臂机器人操作中探索主动视觉
  • 学习笔记之debian的thonny开发(尚未验证)--从stm32裸机到linux嵌入式系统
  • windows11+ubuntu20.04双系统下卸载ubuntu并重新安装
  • 人工智能 - 机器学习、深度学习、强化学习是人工智能领域的理论基础和方法论
  • Docker 修改配置后无法启动问题
  • Python笔记
  • 红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问
  • 腿足机器人之七- 逆运动学
  • PostgreSQL有undo表空间吗?
  • 【Scrapy】Scrapy教程2——工作原理
  • Tetragon:一款基于eBPF的运行时环境安全监控工具
  • 数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)
  • Python学习心得正则表达式及re模块的使用