printf格式输出

printf输出格式总结 原文:https://blog.csdn.net/weixin_30722589/article/details/96400888 1、%3d: 输出3列;不足三列,左侧补空格;超过三列,按本身列数输出。 2、%03d: 输出3列;不足三列,左侧补0;超过三列,按本身列数输出。 #include<stdio.h> #include<string.... 阅读详情

转自:http://www.cnblogs.com/pcwl/articles/2032148.html

printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。

printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。

printf函数调用的一般形式为:

printf(“格式控制字符串”,输出表列)

其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

“%d”表示按十进制整型输出;

“%ld”表示按十进制长整型输出;

“%c”表示按字符型输出等。

非格式字符串在输出时原样照印,在显示中起提示作用。

输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

【例4.3】

main()

{

int a=88,b=89;

printf("%d %d\n",a,b);

printf("%d,%d\n",a,b);

printf("%c,%c\n",a,b);

printf("a=%d,b=%d",a,b);

}


本例中四次输出了a,b的值,但由于格式控制串不同,输出的结果也不相同。第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号,因此输出

的a,b值之间加了一个逗号。第六行的格式串要求按字符型输出 a,b值。第七行中为了提示输出结果又增加了非格式字符串。
格式字符串

在Turbo C中格式字符串的一般形式为:

[标志][输出最小宽度][.精度][长度]类型

其中方括号[]中的项为可选项。

各项的意义介绍如下:

1) 类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:
格式字符
意 义

d
以十进制形式输出带符号整数(正数不输出符号)

o
以八进制形式输出无符号整数(不输出前缀0)

x,X
以十六进制形式输出无符号整数(不输出前缀Ox)

u
以十进制形式输出无符号整数

f
以小数形式输出单、双精度实数

e,E
以指数形式输出单、双精度实数

g,G
以%f或%e中较短的输出宽度输出单、双精度实数

c
输出单个字符

s
输出字符串


2) 标志:标志字符为-、+、#、空格四种,其意义下表所示:
标 志
意 义

-
结果左对齐,右边填空格

+
输出符号(正号或负号)

空格
输出值为正时冠以空格,为负时冠以负号

#
对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点


3) 输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

4) 精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

5) 长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。

【例4.4】

main()

{

int a=15;

float b=123.1234567;

double c=12345678.1234567;

char d='p';

printf("a=%d,%5d,%o,%x\n",a,a,a,a);

printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);

printf("c=%lf,%f,%8.4lf\n",c,c,c);

printf("d=%c,%8c\n",d,d);

}


本例第七行中以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

使用printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的。请看下面两个例子:

【例4.5】

main(){

int i=8;

printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);

}


【例4.6】

main(){

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

}


这两个程序的区别是用一个printf语句和多个printf 语句输出。但从结果可以看出是不同的。为什么结果会不同呢?就是因为printf函数对输出表中各量求值的顺序是自右至左进行的。在第一例中,先对最后一项“-i--”求值,结果为-8,然后i自减1后为7。 再对“-i++”项求值得-7,然后i自增1后为8。再对“i--”项求值得8,然后i再自减1后为7。再求“i++”项得7,然后i再自增1后为8。 再求“--i”项,i先自减1后输出,输出值为7。 最后才求输出表列中的第一项“++i”,此时i自增1后输出8。

但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右,因此得到的结果是上述输出结果。
Revit二次开发之获取钢筋(Rebar)的线(Line) 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar 阅读详情

相关推荐

常见机械臂模型不用找!Mujoco这儿都有!

高质量的模型集合,franka panda,so-arm100,ur之类的机械臂都有。常见机械臂模型不用找!Mujoco这儿都有!大概346M,网速不行的可以下载zip。

darcsdn 993

C中printf()的常用输出

C中printf()的常用输出

u011337503的专栏 1万+

麒麟V10系统下CoreDump文件自动归档与快速定位指南(附coredumpctl实战)

本文详细介绍了在麒麟V10操作系统下,如何利用systemd-coredump机制和coredumpctl工具实现CoreDump文件的自动化管理与高效调试。内容涵盖从系统架构解析、自动化配置策略,到使用coredumpctl进行快速查询、过滤与深度分析的实战指南,旨在帮助运维人员和开发者快速定位系统崩溃的根本原因,提升问题排查效率。

gg901的博客 222

C语言格式化输出函数printf详解——C语言基础知识

1、printf函数的一般格式 printf函数的一般格式为: printf(格式控制字符串,输出值参数表); 如: printf("f=%f,c=%f\n",f,c); 其中,f=%f,c=%f\n 是格式控制字符串,f,c 是输出值参数表。 (1)格式控制字符串是用双引号括起来的字符串,包括三类信息: 格式字符。格式字符由“%”引导,如%d、%f等。它的作用是控制输出字符的格式。 转义字符。格式控制字符串里的转义字符按照转义后的含义输出,如上面printf函数双引号内的换行符“\n”,即输出回车。

weixin_54194783的博客 9万+

2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服

在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。该库依赖于,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。

2401_85013604的博客 1248

从理论到实践:利用FilterSolutions高效设计7阶椭圆低通滤波器

本文详细介绍了如何利用FilterSolutions软件高效设计7阶椭圆低通滤波器。文章从理论入手,对比了巴特沃斯、切比雪夫等经典滤波器特性,阐述了在要求高衰减陡度(如62dB抑制)和严格通带波纹(0.2dB)时,椭圆滤波器是最优选择。通过分步实战教程,指导读者完成从软件参数设置、性能验证到实际电路布局与调试的全过程,助力射频与高速数字信号处理工程师将理论转化为可靠设计。

jupi8的博客 559

C语言printf() 详解之终极无惑

C语言printf() 详解之终极无惑

qq_31716541的博客 6990

ZYNQ程序固化实战:从BOOT.bin生成到QSPI/SD卡双启动模式详解

本文详细解析了ZYNQ 7000系列程序固化的完整流程,重点解决了程序断电丢失问题。通过实战演示,从生成BOOT.bin文件到配置QSPI与SD卡双启动模式,逐步指导开发者实现程序在外部存储中的永久驻留,确保产品脱离调试器独立运行。

weixin_29193259的博客 517

C语言-输出函数printf()

其中,"格式控制字符串"是用双引号括起来的一个字符串。包括:普通字符:普通字符即需要在输出时字符。占位符:由“%”和格式字符组成。这个位置。"输出列表"是程序需要输出的一些数据,可以是常量、变量或表达式。用于。注意:printf() 参数与占位符是一一对应关系。

lemonzjk的博客 3190

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 364

Linux内核进程管理子系统有什么第五十一回 —— 进程主结构详解(47)

Linux内核进程管理子系统有什么第五十一回 —— 进程主结构详解(47)

phmatthaus的专栏 1386

关于C语言输入输出的逗号问题(小细节)

你真的懂逗号吗?C语言逗号的使用细节

你的博客 1万+

AMDGPU SVM VRAM Migration 实现详解

AMD正在基于DRM SVM框架重构SVM实现,该框架即将广泛应用。本文分析了AMD开发者提交的POC验证版本的技术方案。该架构分为三层:AMDGPU SVM映射层、DRM Pagemap通用框架层和AMDGPU迁移后端硬件驱动层。系统涉及三个地址空间转换:VRAM分配器空间、HPA/PFN空间和GPU PTE地址空间。关键数据结构包括设备级迁移基础设施amdgpu_pagemap、迁移临时BO包装器amdgpu_svm_bo等。该方案通过地址空间转换实现VRAM迁移功能,目前仍处于POC阶段,设计可能变更

图形/计算GPU的驱动与虚拟化技术分享园地 870

c语言printf()输出格式大全

C语言printf()输出格式大全

Half-up的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C printf输出格式控制

原文地址:http://c.biancheng.net/view/159.html 输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数,也是学习C语言必学的两个函数。在C语言程序中,几乎没有一个程序不需要这两个函数,尤其是输出函数(printf),所以这两个函数必须要掌握。 如果在程序中要使用 printf 或者 scanf,那么就必须要包含头文件 stdio.h。因为这两...

dragon_cdut的博客 3896

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

matlab printf格式化输出,如何使用 printf 来格式化输出

当我开始学习 Unix 时,我很早就接触到了 echo 命令。同样,我最初的 Python 课程也涉及到了 print 函数。再想起学习 C++ 和 Java 时学到 cout 和 systemout。似乎每种语言都骄傲地宣称拥有一种方便的单行输出方法,并生怕这种方式要过时一样宣传它。但是当我翻开中级教程的第一页后,我遇到了 printf,一个晦涩难懂的、神秘莫测的,又出奇灵活的函数。本文一反向初...

weixin_35409775的博客 8309

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

printf输出字符串的一些格式

printf输出字符串的一些格式 2008-11-26 14:50:11 +--------------------------------------------+ | 主题: 使用printf输出各种格式的字符串           | |                                            | | 日期: 2004-06-29

u013525455的博客 8577

printf 的输出格式

char c, s[20]; int a=1234; float f=3.141592653589; double x=0.12345678912345678; strcpy(s, "Hello,World"); c='\x41'; // ASCII码为41号(16进制) 的字符A printf("a=%d\n", a);//按照十进制整数格式输出,显示 a=1234 printf("a=%d%%\n", a);//输出%号 结果 a=1234% printf("a=%6d\n", a);//输出

qq_781675629的博客 1136

C语言Printf输出格式美化

C语言Printf输出格式美化

weixin_45084173的博客 1359

printf函数格式化输出攻略

本文详细介绍了C语言中printf()函数的基本用法和高级格式化功能。主要内容包括:1.基本用法:输出文本、换行控制;2.占位符使用:类型匹配、多占位符、常见占位符表;3.格式化输出:宽度控制(左右对齐)、正负号显示、浮点数精度、字符串截断;4.特殊用法:动态参数指定格式。文章强调类型匹配的重要性,并提供了各种格式化示例,帮助开发者掌握printf()的灵活输出控制技巧。注意事项包括占位符数量匹配、类型安全等关键点。

祯的博客 1658

printf输出格式

printf作为C语言中的一种可以自定义输出格式的,非常方便使用,下面是一些常见的printf输出格式: (1)%md %md可以使不足m位的int类型变量以m位进行右对齐输出,其中高位用空格补齐;如果变量本身超过m位,保持原样: 程序代码: #include<cstdio> int main(){ int a=123,b=1234567; printf("%6d\n"...

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 3517

printf格式化输出

printf格式化输出: printf的一般形式为:printf("格式控制字符串",输出列表),格式空值字符串形式为:[标志][输出最小宽度][.精度][长度]类型。 其中方括号中的项为可选项。各项的意义介绍如下: 1)类型:类型字符用来表示输出数据的类型,其格式符和意义如下表所示: d  以十进制形式输出带符号整数(正数不输出符号) o  以八进制形式输出无符号整数(不输出...

weixin_38169786的博客 297

printf输出格式化

文章目录printf输出格式化 printf输出格式化 printf输出 1.格式化输出整数 %d:按实际数据输出 %md:m为指定输出数据的宽度。如果实际数据位数小于m,则左端补空格(%-md是右端补空格);若大于m,则按实际位数输出。 %0md:m也是指定输出数据的宽度。同上,实际数据位数小于m时,左端补0; #include<stdio.h> int main() { printf("1.%d\n",1234); printf("2.%6d\n",1234); printf(

沐白白的博客 2665
上一篇: 可重入函数和不可重入函数
下一篇: Linux下svn命令
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值