详解C语言printf函数以及%占位符知识

[C/C++入门][printf输出]5、详解C语言和C++中的printf输出 printf是一种在C语言中用于格式化输出的函数。它是C标准库(stdio.h头文件中)提供的一部分。是每一个学习C语言(除非你从C++开始学)肯定会接触的输出函数。在大部分教程中都会教大家printf函数是如何使用,举个例子。int a = 50;这样子我们就可以把变量50给输出来啦。老师肯定说过,printf的第一个参数是输出的语句,其中会有例如%d说明后面读取的第一个变量的类型是整型,同样的,我们可以输出多个不同类型的变量。 阅读详情

功能:

C语言中产生格式化输出的函数(定义在stdio.h系统头文件中),向终端输出 (显示屏等。。。);

定义:

int printf(const char *format,[argument]);   //返回值是int类型。

%占位符


format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type


1.type: 规定输出的数据类型
d 有符号10进制整数i 有符号10进制整数o 无符号8进制整数u 无符号10进制整数x 无符号的16进制数字,并以小写abcdef表示X 无符号的16进制数字,并以大写ABCDEF表示f 浮点数E/e 用科学表示格式的浮点数g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数c 单个字符s 字符串S wchar_t字符(宽字符)类型字符串% 显示百分号本身p 显示一个指针,near指针表示为:XXXXfar 指针表示为:XXXX:YYYYn 相连参量应是一个指针,其中存放已写字符的个数

2.flags:规定输出格式,取值和含义如下:

无 右对齐,左边填充0和空格- 左对齐,右边填充空格+ 在数字前增加符号 + 或 -0 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)空格 输出值为正时冠以空格,为负时冠以负号# 当type=c,s,d,i,u时没有影响type=o,x,X时,分别在数值前增加'0',"0x","0X"type=e,E,f时,总是使用小数点type=g,G时,除了数值为0外总是显示小数点

flags:这个根据自己理解,也可以这样简单的描述,比如:printf("%-2d", 3); 这条语句,在 % 与 d 之间, -N, N表示输出的数字的宽度,如果不够就用空格补齐右边

3.width  :
  
用于控制显示数值的宽度,取值和含义如下
  
    
n(n=1,2,3...) 宽度至少为n位,不够以空格填充
      
        
0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充
          
            
* 格式列表中,下一个参数还是width
  
    
4.prec 用于控制小数点后面的位数,取值和含义如下:


  

    

      
无 按缺省精度显示

        
          
            
0 当type=d,i,o,u,x时,没有影响
              
                
                  
type=e,E,f时,不显示小数点
                    
                      
                        
n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数
                          
                            
                              
type=其他,表示显示的最大宽度
                                
                                  
                                    
.* 格式列表中,下一个参数还是width
  
    
5.F|N|h|l  表示 指针 是否是 远指针 或整数是否是长整数
  
    
      
        
F  远指针
          
            
              
                
n 近 指针
                  
                    
                      
                        
h 短整数或单精度浮点数
                          
                            
                              
                                
l 长整数或双精度浮点数
          
            
              
                
                  
                    
                      
                        
                          
                            
                              
                                
前面扯了这么多有几个主要注意点:

    double a = 1.5333;

    printf("%-06.3lf", a);

这样写会有警告,屏幕打印:1.533[] ([]表示空格)简单分析下,%lf表示double类型,小数点后面是三位,-0,表示输出格式左对齐,然后0补齐右边,假如补齐了就是 1.5330,不是跟后面.3(小数点后面保留三位矛盾了?),所以我把它改成-06.4试试,还是有警告,结果输出1.5333,改成-07.4,输出 1.5333[], 小数点也会在一个数据位(姑且叫这玩意儿).

    在 % 与 d 之间, ON,N表示输出的数字的宽度, 如果不够就用0补齐左边(重点) 比如设置UIImageView的animationImages属性的时候,图片名字依次是 00 01 02 03 04 05.。。。。那么就用%02d(这个是UIKit里面的东西,C只做了解).

    在 % 与 d 之间, N, N表示输出的数字的宽度,如果不够就用空格补齐左边

    在 % 与 d 之间, -N, N表示输出的数字的宽度,如果不够就用空格补齐右边

    在 % 与 f 之间,可以有M.N, M 表示输出数字所占的宽度,N表示小数点后面的位数,如果不够会用空格补齐左边


总结:

1.不管怎么输出,不能改变原有的值,比如printf("%-03d", 5); ,这样会警告,-0,表示左缩进,然后0补齐右边。3表示位宽,也就是输出 500,(这样肯定不行)
2.- 和 0 不要同时用,-0表示表示左对齐,0补齐右边,对于int类型,改变了数值,对于double或者float 画蛇添足。
3.对于float和double,M.N 中 优先满足 小数点后面的位数:N 。
4.其实这些东西,不一定要盘根问到底,掌握几个常用的运用到开发中即可。
printf ,占位符和scanf函数 这里就已经完成了所有关于printf和scanf的学习了!欢迎大家补充。 阅读详情

相关推荐

【C语言的输入输出函数】—scanf函数和printf函数的详细介绍

您好!本篇将为您详细介绍C语言的输入输出函数,主要讲解printf函数和scanf函数的用法和一些注意事项相关的知识,知识点讲解得详细清晰明了,希望您可以耐心看完,一定会学到知识并且有更深刻的理解,希望您会喜欢。

2301_81647724的博客 2563

c语言scanf多个占位符,C语言再学习 -- printf、scanf占位符

一、printf()printf()的返回值为输出的字符个数:例:rv = printf ("hello"); 结果为rv = 5;其格式控制如下列表所述:表一、printf()格式转换说明符注意:不要忘记给控制字符串后面的列表中的每个项目都使用一个转换说明。转换说明输出%a浮点数、十六进制数和p-记数法(C99)%A浮点数、十六进制数和p-记数法(C99)%c一个字符%d有符号十进制整数%e浮...

weixin_30845893的博客 1530

【C初阶】scanf和printf函数介绍

printf()函数和scanf()函数能让用户可以和程序交流,它们是输出/输入函数,简称I/O函数。是库函数,给了一个标准,但是各个编译器的实现会有小部分差异。虽然printf()是输出函数,scanf()函数是输入函数,但它们的工作原理几乎相同。两个函数都使用格式字符串和参数列表。我们先介绍printf()函数,再介绍scanf()函数。

2301_82248162的博客 1954

wchar_t介绍及相关函数

转自http://hi.baidu.com/feifirkissyan/item/c25c0f4defd55d0a6dc2f072 wchar_t的使用 比如求宽字符串长度的函数是  size_t __cdel wchlen(const wchar_t*);    为什么要专门定义这些函数呢?最根本的原因是,ANSI下的字符串都是以’\0’来标识字符串尾的(Unicode字符串以“

wyxTech的专栏 3677

Kindle使用USB数据线传书封面无法显示问题

不建议按这个解决封面问题,首先USB多次插拔麻烦,其次就是我起初按博主方法没啥问题,后面无论我怎么个顺序都出现了‘暂无图片’,我的建议是在亚马逊退出国内只能USB传书的情况下,下载一个calibre 和。飞行模式下用calibre传书到kindle ,然后用Fix Kindle Ebook Cover 修复一下,后面你要继续飞行模式还是连网随你便,两步完事。2,‘’发送到设备’的时候也最好选择 ‘发送特定格式至’ 选择具体的电子书格式,你的电子书是azw3就选azw3,是mobi就选mobi。

meser88的博客 7416

HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务 DevOps高级工程师 章节测试题+结课测试题(模拟考试题)汇总

本文为HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务DevOps高级工程师 在线课程中所有章节测试以及结课测试(HCIP-Cloud Service DevOps Engineer模拟考试)习题和答案

gaogao0305的博客 2264

C语言setlocale 函数的功能

本文主要介绍ASCII表发展历程,以及切换本地化ASCII表,实现宽字符的打印

YUYUJOB的博客 1547

三甲医院网络架构与安全建设实战

华为OceanStor] [华为OceanStor][PACS存储双活] [HIS数据库同步]患者隐私 数据脱敏 天清Web防火墙动态脱敏策略。主数据中心 --[OTV专线]-- 备数据中心。实现医疗业务网/卫生专网/互联网三网隔离。核心业务配置(华为CE6865)自动备份配置(每天02:00)安全事件响应(30分钟SLA)漏洞扫描(每周日00:00)实现医疗物联网统一接入管控。五、等保2.0合规关键配置。堡垒机登录(双因素认证)四、医疗物联网安全方案。

有小小的远大抱负 1911

scanf函数和占位符

scanf和占位符

gyyz995的博客 625

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 575

从KVM虚拟化到Openstack云化架构综述

目录 摘要 OpenStack的虚拟化技术 OpenStack架构介绍 Nova Swift KeyStone Neutron Glance Cinder Ceilometer Heat 摘要 这两年的工作中,接触到公有云和私有云的项目还不少。起初对于Openstack的了解,仅停留在其几大组件的交互上,如Nova、Neutron、Glance等,以及对各大云厂商功能点上...

liyunpeng229的博客 2051

scanf占位符及赋值忽略符

用户的输入有可能不符合预定格式,scanf()提供了一个赋值忽略符,只要把 * 加在任何占位符的百分号后面。%[ ] 在方括号中指定一组匹配的字符(比如%[0—9]),遇到不在集合中的字符,匹配会停止。上面的所有占位符中除了%c之外,都会自动会忽略起始的空白字符。%c不忽略空白字符。以上代码若用户输入2024-2-28时可以忽略- -%Lf long double类型浮点数。scanf()常用的占位符如下,%lf double类型浮点数。%f float类型浮点数。

MUMU_123456789的博客 1026

RAG-Anything 实战:构建企业级多模态知识图谱问答系统

本文详细介绍了如何利用RAG-Anything构建企业级多模态知识图谱问答系统,解决跨模态文档处理的痛点。通过架构设计解析、部署实战指南和典型业务场景解决方案,帮助企业实现高效的知识管理和智能检索,提升决策效率。

weixin_29089057的博客 385

【C语言指南】printf()函数详解

printf 函数在输出格式 format 的控制下,将其参数进行格式化,并在标准输出设备(显示器、控制台等)上打印出来。printf函数是C语言最常用且功能强大的库函数,搞明白printf函数能在工作中做到事半功倍的效果

倔强的石头的博客 3万+

【软件测试】人工智能(AI)在软件测试领域的应用

AI在软件测试领域的应用使测试过程更加自动化、高效和智能。它可以帮助测试团队减轻负担,更快地识别和修复问题,最终提高软件的质量和可靠性。随着AI技术的不断进步,未来AI在软件测试领域的应用将更加广泛和深入。

weixin_46453070的博客 4384

大数据分析案例-基于决策树算法构建世界杯比赛预测模型

本项目旨在分析往届世界杯比赛数据,找出规律,最后使用决策树算法构建世界杯比赛预测模型,给出两个球队即可预测胜率,可以给爱看球的小伙伴提供一个参考。本次实验我们使用了2018年及其之前的世界杯比赛数据,通过建立决策树模型,模型准确率为82%,接着我们使用该模型预测了2022年世界杯的5场半决赛及决赛,模型准确率也是接近80%的,说明模型效果还是很不错的。心得与体会:通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。

m0_64336780的博客 1万+

C语言printf函数

C语言中的printf函数是标准格式化输出函数,用于向屏幕输出格式化字符串。其函数原型为int printf(const char *format,...),通过格式控制字符串指定输出类型和格式,支持多种数据类型(如%d、%f、%s等)和格式选项(标志、宽度、精度等)。printf还能处理转义字符(如\n、\t)实现特殊输出效果。该函数返回输出字符数,出错时返回负值并设置错误标志。

vbnetcx的博客 5万+

精雕软件(JDpaint) 5.5 绿色版

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

C语言中“printf”占位符用法详解

本文主要讲述常见占位符在“ printf ”中的应用,以及占位符的标准格式。

LiU11e的博客 4031

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言中scanf函数详解

scanf函数   上一节中我们讨论了,如何将整数,浮点数,字符串打印到屏幕上去。既然有输出,怎么能没有输入呢?这一节中,我们来介绍与printf相反的scanf函数。   scanf的功能是将键盘输入的字符串转换成整数、浮点数、字符或字符串。 1. scanf函数的使用公式 scanf是一个变参函数。(参数的数量和类型不确定) scanf的第一个参数是字符串。 scanf的第一个参数是需要输入的字符串以及需要被读取的占位符。 scanf的后续参数,是依次被读取并赋值的变量地址。 占位符的类型和数量需要与

小杰码匠 4万+

Statistics and Machine Learning Toolbox

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

C语言第四弹---printf和scanf详解

1、printf和scanf详解介绍 1.1 printf 1.1.1 基本用法 1.1.2 占位符 1.1.3 占位符列举 1.1.4 输出格式 1.1.4.1 限定宽度 1.1.4.2 总是显示正负号 1.1.4.3 限定小数位数 1.1.4.4 输出部分字符串 1.2 scanf 1.2.1 基本用法 1.2.2 scanf的返回值 1.2.3 占位符 1.2.4 赋值忽略符

小林熬夜学习编程的博客 2005

【C语言】库函数scanf和printf详解,地表最全总结,不看后悔系列

printf和scanf可以说贯穿了编程的始终,它们是程序员手中不可或缺的工具。它们以简洁而强大的功能,为程序员提供了一个与计算机和用户交互的桥梁,让程序不再是孤立的存在,而是能够与用户进行对话、交流的智能体。让我们在编程的道路上,善用printf和scanf,创造出更多优秀、有用的程序,为我们的生活带来更多的便利和乐趣。

2401_82666224的博客 7242

C语言基础-printf函数的详解

占位符,转义字符·,printf的返回值

qq_62760151的博客 2583

[C语言] printf()函数及占位符的使用

printf()函数是C语言最基本的需要掌握的函数, 它可以在控制台输出相应内容. 而占位符可以与printf()函数组合使用. 本文将讲解printf()函数及占位符的使用.

w147288的博客 966

C语言---printf scanf及其占位符详解

printf的作用是向屏幕设备按照规定的格式输出信息。要注意,在使用中要利用到头文件<stdio.h>,它里面的f全称为format(格式化),表示可以定制输出文本的格式。下面我们利用printf写一个简单的代码。return 0;结果如图:可以看到,利用printf()可以在屏幕上打印出自己想要的结果。printf()在运行结束后光标就停留在输出结束的地方,不会自动换行。所以为了让光标移到下一行的开头,可以在文本末尾处添加一个换行符\n。

m0_65245374的博客 1436

【C语言】printf()

C语言printf()基本用法,占位符,限定输出宽度,限定小数位数,保留正负号,输出部分字符串

石墨博客 5858

【C语言】printf函数详解

【C语言】printf函数的详解

zore__的博客 6832
上一篇: 项目中的BUG
下一篇: 感触,在凌晨05:00.
HL_developer
博客等级 码龄11年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值