一篇文章带你了解全部常见C语言/C++格式化字符

C语言格式化输入和输出; Format格式化 字符串拼接与分割(含中文);Format格式化;字符格式化;字符串格式化文件读写;四则运算文件版 阅读详情


写在前面

对于刚入门C语言/C++的新手小白来说,程序输出的格式化总是令人头疼,今天,错先生带你通过一篇文章了解全部常见的C语言/C++格式化字符。


一、整数类型格式化

1. 十进制整数 %d

	printf("我的身高是%d厘米", 180);

输出:我的身高是180cm

2. 八进制整数 %o

	int a = 180;
	printf("我的身高转换为八进制是%o厘米", a);

输出:我的身高转换为八进制是264厘米

3. 十六进制整数%x,%X

	int a = 180;
	printf("我的身高转换为十六进制是%x厘米", a);
	int a = 180;
	printf("我的身高转换为十六进制是%X厘米", a);

分别输出:
我的身高转换为十六进制是b4厘米
我的身高转换为十六进制是B4厘米

在了解了十进制、八进制以及十六进制的格式化字符转换后,uu们可能要问为什么没有二进制格式化字符转换了,实际上,在C语言中,没有对于二进制字符的格式化转换,原因是二进制字符一般输出形式将按照8个字节输出,而我们熟知的int类型数据仅占用4个字节。

二、浮点数类型格式化

1. 单精度浮点数float %f

float为单精度浮点数类型,精度较小于double类型,它的格式化主要包括保留小数位数、设置宽度以及左对齐、右对齐等。

	float a = 179.97;
	printf("我的身高是%f厘米\n", a);
	printf("我的身高是%.2f厘米\n", a);
	printf("我的身高是%-10.2f厘米", a);
我的身高是179.970001厘米
我的身高是179.97厘米
我的身高是179.97    厘米

当不指定保留的小数位数时,浮点数float类型将默认输出宽度为10的浮点数,上图第二种输出方法为指定输出保留2为小数的浮点数,第三种方法表示输出宽度为10、左对齐、保留两位小数的浮点数,如果没有数据输出,将以空格补齐。同时,当我们仅输入宽度、不输入负号时,将默认输出右对齐数据;相反,当我们不输入宽度时,将默认输出左对齐数据。

2. 双精度浮点数double %lf

double类型数据为双精度浮点型数据,能够较float型数据输出更为精确的浮点型数据。它的格式化为%lf。

	double a = 179.97;
	printf("我的身高是%lf厘米\n", a);
	printf("我的身高是%.2lf厘米\n", a);
	printf("我的身高是%-10.2lf厘米", a);
我的身高是179.970000厘米
我的身高是179.97厘米
我的身高是179.97    厘米

细心的小伙伴会注意到,double类型数据在不指定小数位数时的格式化输出与float类型数据的输出结果略有不同,实际上,这与double类型数据和float类型数据能够输出的精度有关,输出的具体结果还与内部定义的数据结构有关,感兴趣的小伙伴们可以深入学习一下哦!

3. 指数形式输出浮点数 %e,%E

	double a = 179.97;
	printf("我的身高是%e厘米\n", a);
	printf("我的身高是%E厘米\n", a);
	printf("我的身高是%.2e厘米", a);
我的身高是1.799700e+02厘米
我的身高是1.799700E+02厘米
我的身高是1.80e+02厘米

三、字符、字符串类型格式化

1. 字符(char)类型格式化 %c

	printf("我的身高是%c%c%c厘米\n", '1','8','0');
我的身高是180厘米

C语言中并没有定义字符串数据类型,因此,在进行字符串处理与输出时使用C语言只能采用字符型数组进行处理;C++标准库string中包含了字符串数据类型,便于我们更加轻松地处理并输出字符串

2. 字符串(string)类型格式化 %s

#include<cstdio>
#include<string>
using namespace std;

int main()
{

	printf("我的身高是%s厘米\n", "180");

	return 0;
}
我的身高是180厘米

注意在此处需要包含标准库string,否则无法使用%s进行字符串的格式化。

四、其它 eg:%p 输出指针

除此之外,C语言/C++还包含各种形式的格式化字符输出,如%p,将格式化输出指针的值。

	int p = 180;
	int* ptr = &p;
	printf("我的身高存放在%p\n", ptr);
我的身高存放在000000D8CBEFFB54

总结

在未来学习C语言/C++或是其它编程语言的道路上,正确输出所需结果是很关键的一步,尤其是在算法竞赛中,巧妙地输入输出也为正确作答提供了保障。好了,blog到此结束,希望对大家有所帮助,一起进步!

C方式格式化输入输出(自行复习用) 格式字符分为两种基本格式字符和附加格式字符。d,i带符号的十进制形式整数(符号带-,整数不带+)o八进制无符号形式输出整数(不带前导0,因为只输出最基本的内容)x,X十六进制无符号形式输出整数(不带前导0x)u十进制无符号形式输出整数c字符形式输出(一个字符)s输出一个字符串f以小数形式输出浮点数e,E以指数形式输出浮点数(科学计数法)g,G在 f , e 中选择宽度较短的形式输出浮点数int m = 10;//输出:10 12 a 10。 阅读详情

相关推荐

C语言学习笔记3——格式化输入、输出

printf的缓冲区具备行缓冲特性,若打印的数据没有添加换行符,则不会立即打印,将会一直等到遇到'\n'或者是缓冲区满了才会输出(强制清除缓冲区)=>行缓冲特性。将高精度数据转换成低精度数据用强制类型转换,但这样的转换方式可能导致数据的丢失或者数据异常(丢失一些精度),一般都是用强制类型转换去进行地址转换。所有的字符串即字符串的判断都必定是以'\0'结尾,若字符串中间夹杂'\0',遇到任何函数的分析,只要一遇到'\0',马上停止分析;

2401_83427969的博客 1680

c语言格式化符,C语言 格式化字符

格式字符控制:说明:sprintf(格式化后的字符,"%(长度)格式符",格式化前的字符);1、 d格式符。用来输出十进制数。有以下几种用法:(1)、%d按整数的实际长度输出。(2)、%md,m为指定的输出字段的宽度。如果数据位数小于m,则左端补以空格,若大于m,则按实际位数输出。(3)、%ld,输出长整型数据。例:long a=135790;printf(“%ld”,a);如果用%d输出就会发生...

weixin_42518874的博客 4488

C 和 C++ 字符串格式化

--------------------------------------------------------------------------------- gcc中格式化输出函数的研究:http://blog.youkuaiyun.com/dai_xiangjun/article/details/41356723 C语言格式化输出小结:http://bl...

墨鱼菜鸡 1343

c语言格式化输出

C语言printf指定宽度的格式化输出 printf() 是一个标准库函数,使用时需要 include 头文件 stdio.h。 #include<stdio.h> printf() 函数的调用形式为: printf(“格式控制字符串”, 输出列表); 其中,格式控制字符串用于指定输出格式,有格式字符串和非格式字符串两种形式。 格式字符串有 %,%后面跟着各种格式字符,用以说明输出数据的类型、形式、长度、小数位等。 下面是一些常用的指定宽度的格式化输出例子。 格式化占位符(format): %[

Louis_12345的博客 1万+

C/C++字符输入函数(详解)

文章目录C/C++字符输入函数(详解)1.常用函数(scanf函数)2.cin流控输入3. gets()函数4.getline()函数5.cin.get (char *str, int maxnum)特殊输入函数1> sprintf():2> sscanf():上章题解:问题:通过灵活输入原字符串,需要替换的字符换,需要被替换的字符串,并输出结果。 C/C++字符输入函数(详解) C/C++实现从终端(包括但不限于键盘,对于嵌入式设备可以是网口/串口)。 C/C++所提供的标准库提供了不下于一

MelyLenient的博客 5142

C/C++/Qt中的字符串常用操作

C/C++/Qt 字符串中的常用操作汇总

柠檬野生菌的摆烂笔记 1163

C/C++中字符串拼接的使用详解(加常见字符串使用小结)

C/C++中针对字符串函数的使用过程中,需要格外注意字符串终止符'\0'。字符串结尾处默认带'\0'。 带形参n的库函数可以有效防止因字符串长度过长导致的段错误,建议使用带n的字符串函数。一 、snprintf函数的使用字符串复制是别样的一种字符串拼接方式,通过将目标字符串复制到源字符串结尾处实现字符串拼接效果。int snprintf(char *str, size_t size, const char *format, ...)设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到

qq_39645539的博客 3万+

单片机OTA升级:Bootloader如何多重校验保障APP完整性?

本文详细介绍了单片机OTA升级中Bootloader如何通过CRC校验、数字签名、版本比对和存储位置检查等多重校验机制保障APP完整性。CRC校验作为快速检测数据完整性的核心手段,结合其他安全措施有效防止设备变砖和安全漏洞,确保远程升级的可靠性。

l3m4n的博客 981

一篇文章搞懂格式化字符串漏洞

文章目录0x00 序言0x01 格式化字符串0x02 printf()函数0x03 格式化字符串漏洞利用任意内存读取任意内存修改 0x00 序言 刚学pwn,做了两道攻防世界的pwn新手训练,真的是啥也不会,第一道题是连上就有flag我都不知道咋连,就菜到这种地步。一个格式化字符串漏洞看了一天。看了很多博客,最后终于弄明白了,感觉很多博客都对新手不是那么友好,刚学完,总结梳理一下,便于复习。也希望自己写的能帮到其他像我一样刚开始学的小白更快更清楚的明白格式化字符串漏洞。 0x01 格式化字符串 格式化字符串

qq_42988973的博客 4440

YOLOv11 网络结构详解:一文看懂 Backbone、Head、C3k2、SPPF 和 Detect 检测头

在使用 YOLOv11 进行目标检测时,我们经常会接触到或这样的模型配置文件。backbone和head分别是什么意思?ConvC3k2SPPFC2PSA这些模块分别起什么作用?P3/8、P4/16、P5/32 代表什么?为什么最后 Detect 要同时接收 3 个不同尺度的特征图?YOLOv11n、YOLOv11s、YOLOv11m、YOLOv11l、YOLOv11x 的区别在哪里?

learnerYC的博客 1811

AI对嵌入式的冲击分三波,大多数人只看到了第一波

摘要:AI对嵌入式行业的冲击将分三波递进:第一波(已发生)是代码生成,AI能完成底层驱动配置;第二波(1-2年内)是架构设计,AI将参与系统方案制定;第三波(2-3年)是需求验证,AI能穷举测试用例但无法替代安全决策。每波冲击都将重新定义工程师的价值标准,经验型工程师若不能将隐性知识转化为显性规则将面临淘汰。作者指出,完全不用AI的人第一波就会被淘汰,而仅满足于第一波应用的人将在后续冲击中落后。

u010898524的博客 962

C++ - std::string字符串格式化方法总结

我们可以使用可变参数模板+定义一个字符串格式化函数// std::string的字符串格式化函数 template < typename . . . Args > static std :: string str_format(const std :: string & format , Args . . . args) {if(!

HW140701的博客 5万+

模糊综合评价模型

一.引子 1.数学归纳法:同高中知识 2.秃子悖论:秃子悖论 这俩个例子都是类似于“量变引起质变”的道理,而在数学中我们把这类问题的性质叫做“模糊性”,在生活中我们也经常能遇到一些模糊的概念,比如年轻、帅、很少很多… 二.概述 模糊综合评价法是一种基于模糊数学的综合评价方法。该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价。它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。——来自百度百

The__Tyche的博客 2万+

☀️光天化日学C语言☀️(05)- 格式化输入 | 恭喜你,你应该可以做一款独立游戏了

恭喜你,你应该可以做一款独立游戏了

英雄哪里出来 1万+

【第1章>第5节】SOM自组织映射网络的理论学习与MATLAB仿真

自组织映射网络(Self-Organizing Map,SOM)是一种无监督学习的人工神经网络,由芬兰学者Teuvo Kohonen于1981年提出,也被称为Kohonen网络。它的主要功能是将高维输入数据映射到低维(通常是二维)的离散网格上,同时保持输入数据的拓扑结构,即相邻的输入数据在映射后的网格上也相邻。

FPGA/MATLAB学习教程/源码/项目合作开发 402

AIO-1126-JD4(RV1126)蓝牙通讯(BLE)

AIO-1126-JD4采用了正基科技推出的一款集成WiFi、蓝牙功能的模组AP6236,支持高速(HS)功能的蓝牙 4.0,集成了 1.5 类功率放大器(PA),并支持低功耗蓝牙(BLE)。提到正基就不得不提下博通。博通和正基是芯片技术与模块制造方面的合作关系,正基科技是中国台湾的公司,在无线通信模块领域有一定的市场份额,博通则是全球领先的有线和无线通信半导体公司。正基把包含博通关键IP的核心芯片和自家的射频部分等封装在一起,即SIP(System In Package)。

w1820020635的博客 1121

☀️光天化日学C语言☀️(04)- 格式化输出 | 爱要大声 “输“ 出来

爱要大声 “输“ 出来

英雄哪里出来 1万+

从零开始学习AI人工智能本体论:概念与实战

本文旨在为初学者提供一个全面而易于理解的人工智能本体论入门指南。我们将覆盖从基本概念到实际应用的全过程,帮助读者理解本体论在AI系统中的核心作用。核心概念与联系:介绍本体论的基本概念和原理核心算法与操作步骤:详细讲解本体构建和推理方法项目实战:通过实际案例展示本体论的应用实际应用场景:探讨本体论在不同领域的应用未来发展趋势:展望本体论在AI领域的前景本体论(Ontology): 在AI中,指对特定领域概念及其关系的明确形式化描述。

AI智能探索者的博客 868

C语言, C++ IO 总结. 一篇文章帮你透析缓冲区存在的意义, C, C++ IO的常见用法

C语言, C++ IO 总结. 一篇文章帮你透析缓冲区存在的意义, C, C++ IO的常见用法

小杰312的博客 2809

【x265编码器】章节6——x265的码率控制

对于CRF模式而言,右边这部分是是固定值m_rateFactorConstant,在初始化的时候确定,跟分辨率,qCompress这个参数是外部可设参数,默认值0.6,因此QP的选择只跟编码复杂度有关,跟码率无关,编码复杂度越高,QP值越高,因此可以一定程度上说CRF模式是恒定质量的编码模式。其中Complex表示当前帧的编码复杂度,x265中用lookahead模块计算的SATD作为衡量当前帧的复杂度,c为模型参数,qscale是率失真优化中的拉格朗日乘子,R为编码当前帧需要的比特数。

vcvdv123的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C/C++语言 从日期格式字符串中提取年月日时分秒

系列文章目录 文章目录系列文章目录前言一、日期格式字符串二、strftime函数1.描述2.声明3.形参4.返回值总结 前言 上一篇文章《C/C++语言 获取系统时间并格式化输出》中讲到了如何获取系统时间,如何将系统时间戳转换成tm结构并拼接为日期格式的字符串,想了解的童鞋可以点击链接查看;本篇文章主要讲解,如何从日期格式字符串中提取年月日时分秒。 一、日期格式字符串 文章示例的日期格式为“YYYY-MM-DD HH:MM:SS”。上篇文章介绍系统时间格式化输出时就使用的这种格式。使用C/C++开发时,

烫手的热山药的博客 8025

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C/C++字符串基础,类型,使用方法大全(字符,字符串,字符数组,字符串函数,C++ string)

文章目录一、前言二、C/C++字符串1.字符字符的表示字符的输出字符与整数2.字符和字符串编码源文件使用什么编码窄字符串使用什么编码总结3.ASCII编码了解对控制字符的解释NUL (0)SOH (1)STX (2) 和 ETX (3)BEL (7)BS (8)HT (9)LF (10)VT (11)FF (12)CR (13)SO (14) 和 SI (15)DLE (16)DC1 (17)DC3 (19)EM (25)FS(28)GS(29)RS(30)US(31)DEL (127)4.C语言转义字符5

qq_41854911的博客 4416

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python C++字符串格式化

方法语法引入版本性能推荐场景f-Stringsf"{var}"最快日常开发首选,几乎适用于所有场景。较快需要兼容旧版 Python (3.5及以下);或需要将格式化模板作为变量传递时。操作符"%s" % varPython 2.x较慢维护非常古老的代码;或在某些标准库(如logging)中仍然常用。新代码中应避免使用。$var最慢处理来自不可信用户的输入模板,安全第一的场景。总而言之,经验法则是:只要你的项目使用 Python 3.6 或更高版本,就始终使用 f-strings。

刘杰的博客 1205

c语言如何输入带\n和空格的字符串

当运行这个程序时,向缓冲区输入真正的内容是“year\02019\n”(回车即\n),第一个scanf读取了“\n”前的所有内容,然后保存到a中,第二个scanf也会选择读取了“\n”前的所有内容(啥也没有),第三个scanf也会选择读取了“\n”前的所有内容(啥也没有)。scanf遇到\0就会读取前面的内容,于是a[0]还正常的读入,scanf发现接下来一个是\0,就不干了,读取结束,循环结束,a[1]--a[99]全是\0。如果你输入“s\0s\n”,那么数组中分别为s,\0,s,\0.第四个是。

woshihlf的博客 4792

【C】C语言printf,格式化字符串,缓冲区

C语言格式化字符串 文章目录C语言格式化字符串前言格式化字符串printf 常用的format标签:利用C11特性 _Generic 写的泛型print相关库函数其他问题%x、%X、%#x、%#X 的区别关于`%I64d` 和 `%lld`如何输出 %d、\ 和双引号 前言 用惯了 Python 字符串的 format,感觉 C 的 printf 用起来好别扭,于是写这篇来帮忙记忆一些细节。 格...

(ノ゚▽゚)ノ的博客 3489

VS Code c/cpp 插件和配置

参考链接:https://www.cnblogs.com/esllovesn/p/10012653.html VS Code 界面优美,启动速度快。 特别是打开 100m 以上的 log。 大型项目首推source insight4 使用 VS Code 替代 notpad++ 作为 c/cpp 编辑器,并不把 VS Code 配置成 IDE 。 插件: Bo...

qq_38907791的博客 7587
下一篇: 一篇文章深入浅出带你理解CCR,BCC数据包络模型
等我不困
博客等级 码龄4年 239粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值