三种输入输出函数

目录

printf函数

scanf函数

getchar函数

putchar函数 

gets函数

puts函数


printf函数

当你需要将数据或文本输出到屏幕或其他输出设备时,C语言提供了一个非常有用的函数,即 printf() 函数。它是标准库中定义的函数,用于格式化输出。

printf() 函数的原型如下:

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

它接受一个格式化字符串 format 和一系列要输出的参数。这个函数会根据格式化字符串中的格式说明符,将参数按照指定的格式进行转换和输出。最后,它返回成功输出的字符数

下面是一个简单的示例,展示了如何使用 printf() 函数输出不同类型的数据:

#include <stdio.h>int main() {int num = 10;float pi = 3.14159;char ch = 'A';char str[] = "Hello, World!";printf("Integer: %d\n", num);printf("Float: %.2f\n", pi);printf("Character: %c\n", ch);printf("String: %s\n", str);return 0;
}

在这个示例中,我们使用 printf() 函数输出了整数、浮点数、字符和字符串。格式化字符串中的格式说明符 %d%.2f%c %s 分别代表整数、浮点数、字符和字符串的输出格式。通过在格式化字符串中使用这些格式说明符,我们可以控制输出的格式和精度。

请注意,printf() 函数中的格式化字符串可以包含普通的字符,例如逗号和空格,以及转义序列,如 \n 表示换行符。此外,我们还可以使用特定的修饰符和标志来进一步定制输出的格式。

总结一下,printf() 函数是C语言中用于格式化输出的函数,可以接受不同类型的参数,并根据格式化字符串中的格式说明符将它们转换为相应的格式输出。这使得在输出数据时更加灵活和方便。


scanf函数

当你需要从用户输入中获取数据时,C语言提供了一个非常有用的函数,即 scanf() 函数。它是标准库中定义的函数,用于格式化输入。

scanf() 函数的原型如下:

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

它接受一个格式化字符串 format 和一系列要读取的变量的地址。根据格式化字符串中的格式说明符,scanf() 函数会读取用户输入的数据,并将其存储在对应的变量中。最后,它返回成功读取的值的数量

下面是一个简单的示例,展示了如何使用 scanf() 函数读取不同类型的数据:

#include <stdio.h>int main() {int num;float pi;char ch;char str[20];printf("Enter an integer: ");scanf("%d", &num);printf("Enter a float: ");scanf("%f", &pi);printf("Enter a character: ");scanf(" %c", &ch);  // 注意空格字符printf("Enter a string: ");scanf("%s", str);printf("Integer: %d\n", num);printf("Float: %.2f\n", pi);printf("Character: %c\n", ch);printf("String: %s\n", str);return 0;
}

在这个示例中,我们使用 scanf() 函数分别读取了整数、浮点数、字符和字符串。通过在格式化字符串中使用 %d%f%c%s 格式说明符,并将对应变量的地址传递给 scanf() 函数,我们可以从用户输入中获取相应类型的数据。

请注意,scanf() 函数中的格式化字符串中的格式说明符与 printf() 函数中的格式说明符类似。它们用于指定输入数据的格式和类型。在读取字符时,我们通常在 %c 前面放置一个空格字符,以忽略之前的换行符或空格符。

另外,需要注意的是,使用 %s 读取字符串时,scanf() 函数会根据空格和换行符等空白字符进行分隔。因此,它只能读取不含空格的单词。如果你需要读取带有空格的字符串,可以考虑使用 gets() 函数。

总结一下,scanf() 函数是C语言中用于格式化输入的函数,可以根据格式化字符串中的格式说明符将用户输入的数据转换为相应的类型,并将其存储到对应的变量中。


getchar函数

getchar() 函数是C语言中用于从标准输入(通常是键盘)获取单个字符的函数。它属于标准I/O库,可以帮助你逐个字符地获取用户输入。

getchar() 函数的原型如下:

int getchar(void);

这个函数不需要任何参数,它会从标准输入中读取一个字符,并返回该字符的ASCII码值(整数)。如果没有可用的输入字符,它将返回特定的值 EOF(通常被定义为 -1),表示已经到达了文件末尾。

下面是一个简单的示例,演示了如何使用 getchar 函数逐个字符地获取用户输入,并在屏幕上输出:

#include <stdio.h>int main() {char ch;printf("Enter some characters, press Enter when finished:\n");while ((ch = getchar()) != '\n') {putchar(ch);  // 将字符输出到屏幕上}return 0;
}

在这个示例中,我们使用 getchar() 函数在一个循环中逐个字符地读取用户输入,直到遇到换行符为止。在每次循环中,我们使用 putchar() 函数将读取到的字符输出到屏幕上。

需要注意的是,getchar() 函数会读取用户输入的所有字符,包括空格、制表符和换行符等。因此,它是按照用户逐个输入的顺序来获取字符的。

另外,当你在命令行中运行这个程序时,你可以通过输入一些字符,然后按下回车键来结束输入。这样,程序就会开始逐个输出你输入的字符。

总结一下,getchar() 函数是C语言中用于逐个字符获取用户输入的函数,它将用户输入的字符作为ASCII码值返回,直到遇到换行符为止。


putchar函数 

putchar() 函数是C语言中用于向标准输出(通常是屏幕)输出单个字符的函数。它属于标准I/O库,可以帮助你逐个字符地输出数据到屏幕或其他输出设备上。

putchar() 函数的原型如下:

int putchar(int char);

这个函数接受一个整数参数通常是表示一个字符的ASCII码值。它会将对应的字符输出到标准输出上并返回输出的字符(即传入的参数)作为返回值。如果发生错误,它会返回一个特定的值 EOF(通常被定义为 -1)。

下面是一个简单的示例,演示了如何使用 putchar 函数向屏幕上逐个输出字符:

#include <stdio.h>int main() {char ch = 'A';while (ch <= 'Z') {putchar(ch);  // 将字符输出到屏幕上ch++;}return 0;
}

在这个示例中,我们使用 putchar() 函数在一个循环中逐个输出大写字母'A'到'Z'。在每次循环中,putchar() 函数会将当前字符输出到屏幕上。

需要注意的是,putchar() 函数会将指定的字符输出到标准输出上,通常是显示在屏幕上。它可以用于输出字符、符号或者特定的控制字符,比如换行符或制表符等。

另外,通过将 putchar() getchar() 结合使用,你可以实现逐个字符地获取用户输入,并逐个字符地输出到屏幕上,从而创建一个与用户交互的命令行程序。

总结一下,putchar() 函数是C语言中用于逐个字符地向标准输出输出数据的函数,它将指定的字符输出到屏幕上,并返回输出的字符


gets函数

gets() 函数是C语言中用于从标准输入(通常是键盘)获取一行数据的函数。它属于标准I/O库,可以帮助你获取用户输入的字符串

gets() 函数的原型如下: 

char *gets(char *s);

这个函数接受一个字符指针作为参数表示存储用户输入的字符串的存储位置。它会从标准输入中读取一行数据,并将其存储到指定的字符数组中当用户按下回车键时,函数将停止读取数据,并在字符串末尾添加一个空字符 '\0'。

下面是一个简单的示例,演示了如何使用 gets 函数获取用户输入的字符串,并在屏幕上输出:

#include <stdio.h>int main() {char str[100];printf("Enter a string: ");gets(str);printf("You entered: %s\n", str);return 0;
}

在这个示例中,我们首先声明了一个长度为100的字符数组 str,用于存储用户输入的字符串。然后,我们使用 gets() 函数获取用户输入的一行字符串,并将其存储到 str 中。最后,我们使用 printf() 函数在屏幕上输出用户输入的字符串。

需要注意的是,gets() 函数具有一些安全性问题,因为它无法防止用户输入的字符串超出指定的缓冲区范围。如果用户输入的字符串长度超过了 str 数组的长度,它可能会覆盖其他内存区域,导致程序出现异常。因此,不推荐使用 gets() 函数,建议使用更安全的函数如 fgets()

另外,如果你需要获取用户输入的一个单词或一个字符,可以使用 scanf() 函数。如果你需要获取用户输入的整数或浮点数,可以使用 scanf()fgets() 函数。

总结一下,gets() 函数是C语言中用于从标准输入获取一行数据的函数,它将用户输入的字符串存储到指定的字符数组中,并在字符串末尾添加一个空字符 '\0'


puts函数

puts() 函数是C语言中用于将字符串输出到标准输出(通常是屏幕)的函数。它属于标准I/O库,可以帮助你输出字符串并自动追加换行符

puts() 函数的原型如下: 

int puts(const char *str);

这个函数接受一个以空字符 '\0' 结尾的字符串作为参数,并将这个字符串输出到标准输出中。与 printf() 函数不同,puts() 函数会自动在输出的字符串末尾添加一个换行符 '\n',因此不需要额外的换行符转义字符。

下面是一个简单的示例,演示了如何使用 puts 函数输出字符串到屏幕上:

#include <stdio.h>int main() {char str[] = "Hello, world!";puts(str);return 0;
}

在这个示例中,我们声明了一个字符串 str,其中包含了 "Hello, world!" 这个字符串。然后,我们使用 puts() 函数将这个字符串输出到屏幕上,并自动追加换行符。

需要注意的是,puts() 函数只能用于输出字符串,不能用于输出其他类型的数据。如果你需要输出格式化的字符串或者其他类型的数据,可以使用 printf() 函数。

另外,如果你想输出不带换行符的字符串,你可以使用 fputs() 函数,并在需要的时候手动输出换行符。

总结一下,puts() 函数是C语言中用于将字符串输出到标准输出的函数,它会自动在输出的字符串末尾添加一个换行符 '\n'。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 的调度系统 Scheduler

原文地址1 原文地址2 其中startTime是任务开始的时间&#xff0c;默认是-1&#xff0c;任务开始时将任务开始时间赋值给了startTime&#xff0c; 这里意思是判断这个任务执行时间是否超过5ms(写死的)。若超过&#xff0c;则要交出。

Linux platform tree下的单总线驱动程序设计(DHT11)

目录 概述 1 认识DHT11 1.1 DHT11特性 1.2 DHT11数据格式 1.3 DHT11与MCU通信 1.4 DHT11信号解析 1.4.1 起始信号 1.4.2 解析信号0 1.4.3 解析信号1 2 驱动开发 2.1 硬件接口 2.2 更新设备树 2.2.1 添加驱动节点 2.2.2 编译.dts 2.2.3 更新板卡中的.dtb 2.3 驱…

【Git】上传本地文件到Git(以Windows环境为例)

Git 的下载参考&#xff1a;Git 安装及配置 一、Git 上传的整体流程 1、工作区 > 本地仓库 将本地文件上传到Git&#xff0c;需要先上传到本地仓库&#xff0c;然后再上传到远程仓库。要上传文件到本地仓库&#xff0c;不是直接拷贝进去的&#xff0c;而是需要通过命令一步…

【Linux网络编程六】服务器守护进程化Daemon

【Linux网络编程六】服务器守护进程化Daemon 一.背景知识&#xff1a;前台与后台二.相关操作三.Linux的进程间关系四.自成会话五.守护进程四步骤六.服务器守护进程化 一.背景知识&#xff1a;前台与后台 核心知识就是一个用户在启动Linux时&#xff0c;都会给一个session会话&a…

Java毕业设计-基于springboot的学院物资管理系统-第73期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于springboot的学院物资管理系统&#xff1a;前端thymeleaf、jquery、layui&#xff0c;后端 maven、springmvc、spring、mybatis&#xff0c;有配套报告文档&#xff…

【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一…

指针的经典笔试题

经典的指针试题&#xff0c;让你彻底理解指针 前言 之前对于指针做了一个详解&#xff0c;现在来看一些关于指针的经典面试题。 再次说一下数组名 数组名通常表示的都是首元素的地址&#xff0c;但是有两个意外&#xff0c;1.sizeof&#xff08;数组名&#xff09;这里数组名…

如何在JavaScript中使用大于和小于运算符

在你的 JavaScript 程序中&#xff0c;你经常需要比较两个值&#xff0c;以确定一个是否大于另一个或小于另一个。这就是大于和小于运算符派上用场的地方。 在本文中&#xff0c;我们将通过代码示例更详细地介绍如何使用这些运算符。 &#xff08;本文内容参考&#xff1a;ja…

rabbitmq自用记录

参考博客RabbitMq安装与使用&#xff08;mac&#xff09;高效总结&#xff08;亲测&#xff09;_mac 安装rabbitmq 服务端口-CSDN博客 启动服务 这里提前把redis服务也启动了 这里看到前端更改数据,后端进行日志打印 登录后访问rabbitmq网址

java 线程安全介绍

所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型&#xff0c;要解决两个主要的问题&#xff1a;可见性和有序性。 那么&#xff0c;何谓可见性&#xff1f; 多个线程之间是不能互相传递数据通信的&#xff0c;它们之间的沟通只能通过共享变量…

MinIO 和 Apache Tika:文本提取模式

Tl;dr: 在这篇文章中&#xff0c;我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取&#xff0c;这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集&#xff0c;然后我可以用它来微调 LLM.为了做…

爬虫之牛刀小试(十):爬取某宝手机商品的销量,价格和店铺

首先淘宝需要登录&#xff0c;这一点如果用selenium如何解决&#xff0c;只能手动登录&#xff1f;如果不用selenium&#xff0c;用cookies登录也可。但是验证码又是一个问题&#xff0c;现在的验证码五花八门&#xff0c;难以处理。 我们回到正题&#xff0c;假设你已经登录上…

计算机设计大赛 深度学习YOLO图像视频足球和人体检测 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov5算法5 数据集6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习YOLO图像视频足球和人体检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非…

一览大模型长文本能力

前言 如今的大模型被应用在各个场景&#xff0c;其中有些场景则需要模型能够支持处理较长文本的能力(比如8k甚至更长)&#xff0c;其中已经有很多开源或者闭源模型具备该能力比如GPT4、Baichuan2-192K等等。 那关于LLM的长文本能力&#xff0c;目前业界通常都是怎么做的&…

2024年腾讯云4核8G12M服务器性能测评,适合哪些使用场景?

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

阿里云BGP多线精品EIP香港CN2线路低时延,价格贵

阿里云香港等地域服务器的网络线路类型可以选择BGP&#xff08;多线&#xff09;和 BGP&#xff08;多线&#xff09;精品&#xff0c;普通的BGP多线和精品有什么区别&#xff1f;BGP&#xff08;多线&#xff09;适用于香港本地、香港和海外之间的互联网访问。使用BGP&#xf…

【实战】二、Jest难点进阶(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(五)

文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶1.snapshot 快照测试 学习内容来源&#xff1a;Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程&#xff0c;我在学习开始时&#xff08;2023.08&#xff09;采用的是当前最新版本&#xff1a; 项版本babe…

jmeter遇到连接数据库的问题

jmeter连接mysql或者oracle简单&#xff0c;但是连接过inceptor吗&#xff1f; 上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的

【C++】类和对象(五)友元、内部类、匿名对象

前言&#xff1a;前面我们说到类和对象是一个十分漫长的荆棘地&#xff0c;今天我们将走到终点&#xff0c;也就是说我们对于&#xff23;算是正式的入门了。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23;学习 &…

嵌入式中全面解析 SPI 通信协议方法

SPI 的英文全称为 Serial Peripheral Interface&#xff0c;顾名思义为串行外设接口。SPI 是一种同步串行通信接口规范&#xff0c;主要应用于嵌入式系统中的短距离通信。该接口由摩托罗拉在20世纪80年代中期开发&#xff0c;后发展成了行业规范。 SPI 是一种高速的、全双工的…