【C语言】/*printf 函数*/

目录

printf 函数

1.1 语法形式

1.2 基本使用

1.3 占位符

1.4 占位符的输出格式

1.4.1 限定宽度

1.4.2 总是显⽰正负号

1.4.3 限定⼩数位数

1.4.4 输出部分字符串


printf 函数

1.1 语法形式

语法形式:int printf(const char* format, ...);

功能:将格式化的数据打印到 stdout (标准输出流)中。

返回结果:如果写入成功,返回写入的字符总数;如果写入错误,则设置错误指示符 ferror 并返回负数,如果写入宽字符时发生多字节字符编码错误,则 errno 设置为 EILSEQ 并返回负数

所需包含的头文件:<stdio.h>

1.2 基本使用

1. printf 中的 f 代表 format (格式化),表示可以定制输出文本的格式。

2. printf 函数不会在行尾自动添加换行符,运行结束后,光标会停留在输出结束的地方,因此如果想让光标移动到下一行,可以在输出文本的结尾,手动添加一个换行符 \n 。

3. 如果文本内部有换行,可以通过插入换行符来实现,例如:printf ("Hello\nWorld\n");

1.3 占位符

1. 使用 printf 时可以在输出⽂本中指定占位符,所谓 “占位符”,就是这个位置可以⽤其他值代⼊。

2. // 输出 There are 3 apples

    #include <stdio.h>

    int main()

    {

           printf("There are %d apples\n", 3);

           return 0;

    }

3. 上⾯⽰例中,There are %d apples\n 是输出⽂本,⾥⾯的 %d 就是占位符,表⽰这个位置要可以⽤其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表⽰占位符的类型,例如,%d 表⽰这⾥代⼊的值必须是⼀个整数。 printf() 的第⼆个参数就是替换占位符的值,上⾯的例⼦是整数 3 替换 %d,执⾏后的输出结果就是 There are 3 apples 。

4. 输出⽂本⾥⾯可以使⽤多个占位符

5. #include <stdio.h>

    int main()

    {

           printf("%s says it is %d o'clock\n", "lisi", 21);

           return 0;

    }

6. 上⾯⽰例中,输出⽂本 %s says it is %d o'clock 有两个占位符,第⼀个是字符串占位符%s,第⼆个是整数占位符%d,分别对应 printf() 的第⼆个参数(lisi)和第三个参数(21),执⾏后的输出就是 lisi says it is 21 o'clock 。

7. printf() 参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf() 的参数就应该有 n + 1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。

8. printf 中常用的占位符:%c(字符)、%f(单精度浮点型)、%lf(双精度浮点型)、%s(字符串)、%d(十进制整型)、%p(指针)、%o(八进制整数)、%x(十六进制整数)、%zd(size_t类型)、%%(输出一个百分号)

1.4 占位符的输出格式

printf() 可以定制占位符的输出格式。

1.4.1 限定宽度

1. printf() 允许限定占位符的最⼩宽度,格式:在占位符%的后面添加数字。

2. #include <stdio.h>

    int main()

    {

            printf("%5d\n", 123); // 输出为 "  123"(前面有两个空格)

            return 0;

    }

3. 上⾯⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位,如果不满5位,会在对应值的前⾯添加空格。输出的值默认是右对⻬,所以当宽度不够时会在输出内容的前面添加空格;如果希望改成左对⻬,即当宽度不够时在输出内容后⾯添加空格,可以在占位符的 % 的后⾯插⼊⼀个负号。

4. #include <stdio.h>

    int main()

    {

            printf("%-5d\n", 123); // 输出为 "123  "(后面有两个空格)

            return 0;

    }

5. 对浮点数占位符限定宽度,会限制小数中所有数字和小数点组成的最⼩显⽰宽度

6. // 输出 " 123.450000"

    #include <stdio.h>

    int main()

    {

           printf("%12f\n", 123.45);

           return 0;

    }

7. 上⾯⽰例中,%12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位, 所以 123.45 输出结果的头部会添加2个空格。

1.4.2 总是显⽰正负号

1. 默认情况下,printf() 不对正数显⽰ + 号,只对负数显⽰ - 号,如果想让正数也输出 + 号,可以在占位符的%后⾯加⼀个+ 。

2. #include <stdio.h>

    int main()

    {

           printf("%+d\n", 12); // 输出 +12

           printf("%+d\n", -12); // 输出 -12

           return 0;

   }

3. 上⾯⽰例中,%+d 可以确保输出的数值,总是带有正负号

1.4.3 限定⼩数位数

1. 输出⼩数时,有时希望限定⼩数的位数,举例来说,希望⼩数点后⾯只保留两位,占位符可以写成%.2f 。

2. // 输出 Number is 0.50

    #include <stdio.h>

    int main()

    {

            printf("Number is %.2f\n", 0.5);

            return 0;

    }

3. 上⾯⽰例中,如果希望⼩数点后⾯输出3位( 0.500 ),占位符就要写成%.3f 。

4. 这种写法可以与限定宽度占位符,结合使⽤

5. // 输出为 " 0.50"

    #include <stdio.h>

    int main()

    {

           printf("%6.2f\n", 0.5);

           return 0;

    }

6. 上⾯⽰例中,%6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2,所以,输出字符串的头部有两个空格。

7. 另外,最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 printf() 的参数传⼊

8. #include <stdio.h>

    int main()

   {

          printf("%*.*f\n", 6, 2, 0.5);// 等同于printf("%6.2f\n", 0.5);

          return 0;

   }

9. 上⾯⽰例中, %*.*f 的两个星号通过 printf() 的两个参数6和2传⼊。

1.4.4 输出部分字符串

1. %s 占位符⽤来输出字符串,默认是全部输出,如果只想输出开头的部分,可以⽤ %.[m]s 指定输出的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。

2. // 输出 hello

   #include <stdio.h>

   int main()

   {

          printf("%.5s\n", "hello world");

          return 0;

  }

3. 上⾯⽰例中,占位符 %.5s 表⽰只输出字符串“hello world”的前5个字符,即“hello”。

本篇文章已完结,谢谢支持哟 ^^ !!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/591780.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

可视化大屏应用场景:智慧安防,保驾护航

hello&#xff0c;我是大千UI工场&#xff0c;本篇分享智慧安防的大屏设计&#xff0c;关注我们&#xff0c;学习N多UI干货&#xff0c;有设计需求&#xff0c;我们也可以接单。 实时监控与预警 可视化大屏可以将安防系统中的监控画面、报警信息、传感器数据等实时展示在大屏上…

【word技巧】Word目录如何设置为对齐?

Word文档的目录有些在修改之后无法对齐&#xff0c;大家是不是会自己手动删除省略号&#xff1f;今天分享一个方法&#xff0c;设置之后&#xff0c;tab一键对齐目录。 先选中目录&#xff0c;然后点击段落设置界面&#xff0c;选择左下角的【制表位】 然后将制表位置设置为【…

蓝桥杯练习系统(算法训练)ALGO-947 贫穷的城市

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 某城市有n个小镇&#xff0c;编号是1~n。由于贫穷和缺乏城市规划的人才&#xff0c;每个小镇有且仅有一段单向的公路通往别…

一机游领航旅游智慧化浪潮:借助前沿智能设备,革新旅游服务效率,构建高效便捷、生态友好的旅游服务新纪元,开启智慧旅游新时代

目录 一、引言 二、一机游的定义与特点 &#xff08;一&#xff09;一机游的定义 &#xff08;二&#xff09;一机游的特点 三、智能设备在旅游服务中的应用 &#xff08;一&#xff09;旅游前的信息查询与预订支付 &#xff08;二&#xff09;旅游中的导航导览与互动体…

SHOW ME THE CODE - 面向对象程序设计之 - 接口隔离原则(ISP)

SHOW ME THE CODE - 面向对象设计系列 1 SHOW ME THE CODE - 面向对象基本概念2 SHOW ME THE CODE - 面向对象程序设计之 - 单一职责原则(SRP)3 SHOW ME THE CODE - 面向对象程序设计之 - 开闭原则&#xff08;OCP&#xff09;4 SHOW ME THE CODE - 面向对象程序设计之 - 里氏…

C语言实验-学生信息管理系统

按以下菜单界面编写学生信息管理系统&#xff1b; 1&#xff09;录入学生信息首先输入学生人数&#xff0c;然后根据学生人数开辟动态数组&#xff1b; 2&#xff09;学生信息包括学号、姓名、性别、三门课成绩、总分&#xff1b;其中学号、姓名、 性别、三门课成绩是需要从键盘…

用git上传本地文件到github

两种方式&#xff1a;都需要git软件&#xff08;1&#xff09;VScode上传 &#xff08;2&#xff09;直接命令行&#xff0c;后者不需要VScode软件 &#xff08;1&#xff09;vscode 上传非常方便&#xff0c;前提是下载好了vscode和git软件 1 在项目空白处右击&#xff0c;弹…

ReentrantReadWriteLock类

为了有了ReentrantLock还需要ReentrantReadWriteLock ReentrantReadWriteLock是一个读写锁&#xff0c;它允许多个读操作同时进行&#xff0c;但在写操作时会阻止其他所有读和写操作。这种锁特别适合于读取远多于写入的场景&#xff0c;因为它可以提高并发性而不会牺牲数据一致…

华为OD机试 - 小扇和小船的数字游戏 - 二进制(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

VsCode | 修改首页启动页 Logo

VsCode | 修改首页启动页 Logo 最终效果&#xff1a; 插件的安装 先安装插件 Custom CSS and JS Loader 插件配置 Ctrl Shift P 输入 打开用户设置&#xff0c;在末尾添加 "vscode_custom_css.imports": [""]下载 Logo 下载 Logo 点我下载 引入…

SDB2F3 1.5A,高达28V输出1.2MHz升压转换器芯片IC

一般说明 该SDB2F3是一个恒定的频率&#xff0c;5针SOT23用于小型低功率应用的电流模式升压转换器。 该SDB2F3开关在1.2MHz&#xff0c;并允许使用微小&#xff0c;低成本的电容器和电感2毫米或更少的高度。内部软启动的结果在小浪涌电流和延长电池寿命。 该SDB2F3工作从…

string底层浅析

char简单易用,但是string是万金油 char *b "123"; string a{"123"};a是不是地址 发现a是地址 a的地址是不是和a[0]地址重合 #include<iostream> #include<cstring> using namespace std; int main() {string a{ "123" };char g[…

Pytorch分布式train——pytorch.distributed.launch V.S. torchrun

1. 较早的pytorch.distributed.launch python -m torch.distributed.launch --nproc_per_node4 --nnodes1 --node_rank0 train.py --args XXX 参数解析&#xff1a; nnodes&#xff1a;节点&#xff08;主机&#xff09;的数量&#xff0c;通常一个节点对应一个主机 node_rank…

探索动态内存开辟的奥秘

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 前言 开始之前&#xff0c;我们先来了解一下C/C中程序内存区域划分。 在C/C程序中&#xff0c;内存区域通常被划分为以下几个部分&#xff1a; 1.栈&…

漏洞挖掘之某厂商OAuth2.0认证缺陷

0x00 前言 文章中的项目地址统一修改为: a.test.com 保护厂商也保护自己 0x01 OAuth2.0 经常出现的地方 1&#xff1a;网站登录处 2&#xff1a;社交帐号绑定处 0x02 某厂商绑定微博请求包 0x02.1 请求包1&#xff1a; Request: GET https://www.a.test.com/users/auth/weibo?…

C++设计模式-创建型设计模式

设计模式 设计模式是什么 设计模式是指在软件开发中&#xff0c;经过验证的&#xff0c;用于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决方案&#xff1b;其实就是解决问题的固定套路。但是要慎用设计模式&#xff0c;有一定的工程代码量之后用它比较…

Hdfs小文件治理策略以及治理经验

小文件是 Hadoop 集群运维中的常见挑战&#xff0c;尤其对于大规模运行的集群来说可谓至关重要。如果处理不好&#xff0c;可能会导致许多并发症。Hadoop集群本质是为了TB,PB规模的数据存储和计算因运而生的。为啥大数据开发都说小文件的治理重要&#xff0c;说HDFS 存储小文件…

Python字符串常用方法(全网最细,仅此一份)

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 👉Python从入门到精通 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python180G全栈视频教程以及Python相关电子书合集 😊私信未回可以加V:hacker0327 备注P…

Word文件后缀

Word文件后缀 .docx文件为Microsoft Word文档后缀名&#xff0c;基于XML文件格式 .dotm为Word启用了宏的模板 .dotx为Word模板 .doc为Word97-2003文档&#xff0c;二进制文件格式 参考链接 Word、Excel 和 PowerPoint 的文件格式参考 Learn Microsoft

u盘格式化后电脑读不出来怎么办?u盘格式化的东西还能恢复吗

随着科技的快速发展&#xff0c;U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会遇到U盘格式化后电脑无法读取的情况&#xff0c;或是误格式化导致重要数据丢失。面对这些问题&#xff0c;我们该如何应对&#xff1f;本文将为您详细解答…
最新文章