C语言——标准输出函数(printf、putchar和puts)

目录

  • 1. 标准输入输函数出头文件
  • 2. printf
    • 2.1 函数申明
    • 2.2 基本用法
    • 2.3 占位符
    • 2.4 输出格式
      • 2.4.1 限定宽度
      • 2.4.2 总是显示正负号
      • 2.4.3 限定小数位数
      • 2.4.4 输出部分字符串
  • 3. putchar
    • 3.1 函数申明
    • 3.2 基本用法
  • 4. puts
    • 4.1 函数申明
    • 4.2 基本用法

1. 标准输入输函数出头文件

#include <stdio.h>

2. printf

2.1 函数申明

int printf ( const char * format, ... );

2.2 基本用法

  • printf() 的作用是将参数文本输出到屏幕。它名字里面的 f 代表 format (格式化),表示可以定制输出文本的格式
#include <stdio.h>
int main(void)
{
	printf("Hello World");
	return 0;
}

在这里插入图片描述

  • 上⾯命令会在屏幕上输出⼀行文字“Hello World”
  • printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行
  • 为了让光标移到下⼀行的开头,可以在输出文本的结尾,添加⼀个换行符 \n
#include <stdio.h>
int main(void)
{
	printf("Hello World\n");
	return 0;
}

在这里插入图片描述

  • 如果文本内部有换行,也是通过插入换行符来实现,如下方代码:
#include <stdio.h>
int main(void)
{
	printf("Hello\nWorld\n");
	printf("Hello\n");
	printf("World\n");
	return 0;
}

在这里插入图片描述

2.3 占位符

在这里插入图片描述

  • printf() 可以在输出文本中指定占位符
  • 谓“占位符”,就是这个位置可以用其他值代入
#include <stdio.h>
int main()
{
	printf("There are %d apples\n", 3);
	return 0;
}
  • 上⾯示例中, There are %d apples\n 是输出文本,里面的 %d 就是占位符,表示这个位置要用其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表示占位符的类型, %d 表示这里代入的值必须是⼀个整数
  • printf() 的第⼆个参数就是替换占位符的值,上面的例子是整数 3 替换 %d 。执行后的输出结果就是 There are 3 apples
  • 常用的占位符除了 %d ,还有 %s 表示代入的是字符串
#include <stdio.h>
int main()
{
	printf("%s will come tonight\n", "zhangsan");
	return 0;
}
  • 上面示例中, %s 表示代入的是⼀个字符串,所以 printf() 的第⼆个参数就必须是字符串,这个例子是 zhangsan 。执行后的输出就是 zhangsan will come tonight
  • 输出文本里面可以使用多个占位符
#include <stdio.h>
int main()
{
	printf("%s says it is %d o'clock\n", "lisi", 21);
	return 0;
}
  • 上面示例中,输出文本 %s says it is %d o’clock 有两个占位符,第⼀个是字符串占位符 %s ,第⼆个是整数占位符 %d ,分别对应 printf() 的第⼆个参数( lisi )和第三个参数( 21 )。执行后的输出就是 lisi says it is 21 o’clock
  • printf() 参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf() 的参数就应该有 n +1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值

2.4 输出格式

2.4.1 限定宽度

  • printf() 允许限定占位符的最小宽度
#include <stdio.h>
int main()
{
	printf("%5d\n", 123); // 输出为 " 123"
	printf("%#05d\n", 123)//输出为“00123”
	return 0;
}

在这里插入图片描述

  • 上面示例中, %5d 表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面面会添加空格,如果%后加上 #0 ,则不足位补0
  • 输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面插入⼀个 - 号
#include <stdio.h>
int main()
{
	printf("%-5d\n", 123); // 输出为 "123  "
	printf("%-#05d\n", 123); // 输出为 "123  "
	return 0;
}

在这里插入图片描述

  • 对于小数,这个限定符会限制所有数字的最小显示宽度
#include <stdio.h>
int main()
{
	printf("%12f\n", 123.45);
	return 0;
}

在这里插入图片描述

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

2.4.2 总是显示正负号

  • 默认情况下, printf() 不对正数显示 + 号,只对负数显示 - 号。如果想让正数也输出 + 号,可以在占位符的 % 后面加⼀个 +
#include <stdio.h>
int main()
{
	printf("%+d\n", 12); // 输出 +12
	printf("%+d\n", -12); // 输出 -12
	return 0;
}

在这里插入图片描述

  • 上面示例中, %+d 可以确保输出的数值,总是带有正负号

2.4.3 限定小数位数

  • 输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写成 %.2f
#include <stdio.h>
int main()
{
	printf("Number is %.2f\n", 0.5);
	return 0;
}

在这里插入图片描述

  • 上⾯示例中,如果希望小数点后面输出3位( 0.500 ),占位符就要写成 %.3f
  • 这种写法可以与限定宽度占位符,结合使用:
#include <stdio.h>
int main()
{
	printf("%6.2f\n", 0.5);
	return 0;
}

在这里插入图片描述

  • 上面示例中, %6.2f 表示输出字符串最小宽度为6,小数位数为2。所以,输出字符串的头部有两个空格
  • 最小宽度和小数位数这两个限定值,都可以用 * 代替,通过 printf() 的参数传入

#include <stdio.h>
int main()
{
	int a = 6;
	int b = 2;
	printf("%*.*f\n", a, b, 0.5);
	return 0;
}

在这里插入图片描述

2.4.4 输出部分字符串

  • %s 占位符用来输出字符串,默认是全部输出。如果只想输出开头的部分,可以用 %.[m]s 指定输出的长度,其中 [m] 代表⼀个数字,表示所要输出的长度
#include <stdio.h>
int main()
{
	printf("%.5s\n", "hello world");
	return 0;
}

在这里插入图片描述

  • 上面例中,占位符 %.5s 表示只输出字符串“hello world”的前5个字符,即“hello”

3. putchar

3.1 函数申明

int putchar ( int character );

3.2 基本用法

  • putchar函数把输入的整型对应的字符输出到屏幕上,并返回相同的整型。这个函数在同一个时间内只会输出一个单一的字符
  • putchar函数输出后不会自动换行,如需换行可以使用prinf函数
#include <stdio.h>
int main()
{
	int c = getchar();
	printf("%d\n", c);
	int b = putchar(c);
	printf("\n");
	printf("%d\n", b);
	return 0;
}

在这里插入图片描述

4. puts

4.1 函数申明

int puts ( const char * str );

4.2 基本用法

  • puts函数把字符串 s 和一个尾随的换行符写入到 stdout(屏幕)
  • puts函数的正常打印后的返回值为0,打印异常为EOF
# include <stdio.h>
int main(void)
{
    char str[20] = "0";  //字符数组初始化0
    printf("请输入字符串:");
    gets(str);
    printf("%s\n", str);
    int a = puts(str);
    printf("%d\n", a);
    return 0;
}

在这里插入图片描述
最后,
恭喜你又遥遥领先了别人!

在这里插入图片描述

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

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

相关文章

由反射引出的Java动态代理与静态代理

写在开头 在《深入剖析Java中的反射&#xff0c;由浅入深&#xff0c;层层剥离&#xff01;》这篇文章中我们讲反射时&#xff0c;曾提到过Java的动态代理中使用了反射技术&#xff0c;那么好&#xff0c;今天我们要就着反射的索引&#xff0c;来学习一下Java中的代理&#xf…

不下载任何插件和依赖,在线导出swagger的api接口文档(word)

一、前言 swagger是一个非常方便用来生成api的工具集&#xff0c;它提供了可视化的restful风格的web界面&#xff0c;方便查看生成的api。 但是&#xff0c;想要将swagger生成的api直接导出为doc文档&#xff0c; 似乎不太方便实现&#xff0c;解析swagger的json串&#xff0c;…

空间计算时代加速到来,需要的不只是苹果

近年来&#xff0c;科技行业一直在期待“寒武纪”时刻。伴随技术革命的深入推进&#xff0c;所有厂商都预感新的时代即将到来&#xff0c;并期待自己成为那个引爆点&#xff0c;轻轻一触&#xff0c;推开一扇新的未来之门。 今年开年&#xff0c;苹果就为科技圈锚定了一个可能…

C#拆分字符串,正则表达式Regex.Split 方法 vs String.Split 方法

目录 一、使用的方法 1.使用Split(String, String)方法 2.String.Split 方法 二、源代码 1.源码 2.生成效果 使用正则表达式可以拆分指定的字符串。同样地&#xff0c;使用字符串对象的Split方法也可以实现此功能。使用字符串对象的Split方法可以根据用户选择的拆分条件&…

PythonWeb框架库之fastapi使用详解

概要 Python是一门广受欢迎的编程语言&#xff0c;用于构建各种类型的Web应用程序。FastAPI是一个现代、高性能的Web框架&#xff0c;它以简单的方式提供了快速构建API的能力。本文将介绍FastAPI的各种功能和用法&#xff0c;并提供丰富的示例代码&#xff0c;帮助大家开始使用…

帮管客CRM 文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

指针+一维整型数组的基本运用 和 指针+一维整型数组的初步学习

一&#xff0c;调式程序的技巧&#xff1a; 1.明确问题 2.定位问题 3.加打印&#xff08;打印核心数据0&#xff09; 二&#xff0c;指针的回顾 1.指针的概念&#xff1a;指针就是地址&#xff08;内存单元的编号&#xff09;&#xff0c;是一个数据类型&#xff08;指针类型…

使用 Dockerfile 定制镜像详解

使用 Dockerfile 定制镜像详解 1.DockerfileFROM 指定基础镜像RUN 执行命令构建镜像 2.COPY 复制文件3.ADD 更高级的复制文件4.CMD 容器启动命令5.ENTRYPOINT 入口点6.ENV 设置环境变量7.ARG 构建参数8.VOLUME 定义匿名卷9.EXPOSE 暴露端口10.WORKDIR 指定工作目录11.USER 指定…

【Django】如何设置支持多语种网站,中文/英文网站

首先&#xff0c;需要明确一点&#xff1a;我们要实现的中英对照翻译&#xff0c;这个翻译不是浏览器翻译的&#xff0c;也不是Django帮你翻译。这个需要你自己事先手动翻译好&#xff0c;存放在专门翻译文件中&#xff0c;Django只是事后调用而已。 第一步 新建项目后&#x…

Python||五城P.M.2.5数据分析与可视化_使用华夫图分析各个城市的情况(中)

目录 1.上海市的空气质量 2.成都市的空气质量 【沈阳市空气质量情况详见下期】 五城P.M.2.5数据分析与可视化——北京市、上海市、广州市、沈阳市、成都市&#xff0c;使用华夫图和柱状图分析各个城市的情况 1.上海市的空气质量 import numpy as np import pandas as pd impor…

【毕业日记】2024.01 - 慢下来,静待花开

转眼距离930离开鹅厂已经120天了&#xff0c;我是很能拖延的&#xff0c;或者是很懂自我麻痹的&#xff0c;这三个多月&#xff0c;一直想要写点东西纪念&#xff0c;一直拖一直拖一直拖…… 疫情这几年经济下行里裁员是个茶余饭后“嬉笑”之余经常被提起的词&#xff0c;部门滚…

JVM 笔记

JVM HotSpot Java二进制字节码的运行环境 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;具有垃圾回收功能数组下标越界检查多态&#xff08;虚方法表&#xff09; JVM组成 类加载子系统&#xff08;Java代码转换为字节码&#xff09;运行时数据…

【代码随想录-链表】环形链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

GEDepth:Ground Embedding for Monocular Depth Estimation

参考代码&#xff1a;gedepth 出发点与动机 相机的外参告诉了相机在世界坐标系下的位置信息&#xff0c;那么可以用这个外参构建一个地面基础深度作为先验&#xff0c;后续只需要在这个地面基础深度先验基础上添加offset就可以得到结果深度&#xff0c;这样可以极大简化深度估…

【前端web入门第三天】02 CSS字体和文本

文章目录: 1.字体 1.1 字体大小 1.2 字体粗细 1.3 字体样式 1.4 行高 1.5 字体族 1.6 font 复合属性 2. 文本 2.1 文本缩进2.2 文本对齐方式2.3 文本修饰线2.4 color文字颜色 1.字体 1.1 字体大小 属性名: font-size属性值:文字尺寸&#xff0c;PC端网页最常用的单位px …

8. Threejs案例-SVG渲染器和WEBGL渲染器对比

8. Threejs案例-SVG渲染器和WEBGL渲染器对比 实现效果 知识点 SVG渲染器 (SVGRenderer) SVGRenderer 被用于使用 SVG 来渲染几何数据&#xff0c;所产生的矢量图形在以下几个方面十分有用&#xff1a; 动画标志 logo 或者图标 icon可交互的 2D 或 3D 图表或图形交互式地图复…

6、应急响应-日志自动提取自动分析ELKLogkitLogonTracerAnolog等

用途&#xff1a;个人学习笔记&#xff0c;欢迎指正 目录 背景: 一、日志自动提取-七牛Logki&观星应急工具 1、七牛Logkit: (支持Windows&Linux&Mac等) 2、观星应急工具(只支持Windows) 二、日志自动分析-Web-360星图&Goaccess&ALB&Anolog 1、W…

Pandas.Series.var() 方差 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.2.0 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 传送门&#xff1a; Pandas API参考目录 传送门&#xff1a; Pandas 版本更新及新特性 传送门&…

vit细粒度图像分类(六)FBSD学习笔记

1.摘要 从判别局部区域学习特征表示在细粒度视觉分类中起着关键作用。利用注意机制提取零件特征已成为一种趋势。然而&#xff0c;这些方法有两个主要的局限性:第一&#xff0c;它们往往只关注最突出的部分&#xff0c;而忽略了其他不明显但可区分的部分。其次&#xff0c;他们…

从零搭建Vue3 + Typescript + Pinia + Vite + Tailwind CSS + Element Plus开发脚手架

项目代码以上传至码云&#xff0c;项目地址&#xff1a;https://gitee.com/breezefaith/vue-ts-scaffold 文章目录 前言脚手架技术栈简介vue3TypeScriptPiniaTailwind CSSElement Plusvite 详细步骤Node.js安装创建以 typescript 开发的vue3工程集成Pinia安装pinia修改main.ts创…