带你掌握getchar与putchar的基本用法

news2024/11/29 2:47:32

 个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客

目录

getcahr

putchar

getchar 与 putchar 的配合使用

getchar相较于scanf的优缺点 

putchar相较于printf的优缺点


getcahr

函数原型:

int getchar ( void );//void是指无参的意思,即不需要传入参数

功能: 

从 stdin 中获取字符。

注:stdin 是指标准输入,通常就是我们日常使用的键盘。

返回值: 

成功读取字符后,返回的是 int 类型,是这个字符所对应的ASCll码值。如果读取失败,就会返回EOF(EOF就是一个宏定义,通常被定义为-1)。读取失败,有以下几种情况:标准输入位于文件末尾或者发生其他读取错误。(至于文件末尾和发生其他读取错误,这个后期会讲解,暂时不用管)

getchar在读取字符串时,是一个一个的读取。当输入多个字符时,只会读取第一个字符。

如果这个getchar函数只能把字符转换为对应的ASCll码值,要他有何用呢?用 printf 函数就能解决的事。其实他还有一个老搭档 putchar。

putchar

函数原型:

int putchar ( int character );

功能: 

将字符写入 stdout 

注:stdout 是指标准输出,通常是指我们的屏幕。

返回值:

读取成功,将返回所输出的字符对应的ASCll码值。如果发生写入错误,则返回EOF

示例: 

通过实践,我们会发现这个 putchar 既能接收 int 也能接收 char。

同样这个 putchar  只能输出一个字符。

getchar 与 putchar 的配合使用

getchar相较于scanf的优缺点 

 getchar的优点:

1. 简单易用:getchar函数只用于读取单个字符,使用起来非常简单。

2. 可以处理换行符和空格等:getchar函数可以读取标准输入中的换行符,而scanf函数在读取字符时会跳过换行符和空格等。

getchar的缺点:

1. 无法处理格式化输入:getchar函数只能读取单个字符,无法处理格式化输入,如读取整数、浮点数等。

2. 无法处理多个输入:getchar函数每次只能读取一个字符,无法一次性读取多个输入。

综上所述,getchar函数适用于简单的字符输入,而scanf函数适用于复杂的格式化输入。在选择使用哪个函数时,需要根据具体的需求来决定。

putchar相较于printf的优缺点

putchar的优点:

1. 简单易用:putchar函数只需要传入一个字符参数即可输出,使用起来比较简单。

2. 轻量级:putchar函数比printf函数更轻量级,执行速度更快。

putchar的缺点:

只能输出一个字符:putchar函数只能输出一个字符,如果需要输出字符串或格式化的数据,则需要使用其他方法进行处理。

两者的区别(容易忽视):putchar函数返回输出字符的ASCII码值,而printf函数返回输出的字符数。

好了,以上就是getchar 与 putchar 的知识点与应用还有与其对应功能的常用函数的区别。

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

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

相关文章

【教程】MySQL数据库学习笔记(二)——数据类型(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、整…

DFM-无监督图像匹配

DFM:A Performance Baseline for Deep Feature Matching(深度特征匹配的性能基准) 2021.06.14 摘要 提出了一种新的图像匹配方法,利用现成的深度神经网络提取的学习特征来获得良好的图像匹配效果。该方法使用预训练的VGG结构作为…

starknet之 class_hash

文章目录 问题背景什么是Class Hash问题背景 部署合约报错:ReferenceError: Buffer is not defined 什么是Class Hash 官方: https://book.starknet.io/ch04-03-01-deploy-standard-account.html?highlight=class%20hash#finding-the-class-hash 要部署智能合约,您需要在…

【原创 附源码】Flutter集成Apple支付详细流程(附源码)

最近有时间,特意整理了一下之前使用过的Flutter平台的海外支付,附源码及demo可供参考 这篇文章只记录Apple支付的详细流程,其他相关Flutter文章链接如下: 【原创 附源码】Flutter集成谷歌支付详细流程(附源码) 【原创 附源码】F…

PR:熟悉PR工作环境

新建项目 设置自己的页面布局 首选项

【JavaEE】_JavaScript基础语法

目录 1. JavaScript概述 1.1 JavaScript简介 1.2 HTML、CSS、JavaScript的关系 1.3 JavaScrip的组成 2. JavaScript的书写形式 2.1 内嵌式 2.2 行内式 2.3 外部式 3. 输出 3.1 alert 3.2 console.log 4. 变量的使用 4.1 创建变量 4.1.1 使用var 4.1.2 使用let …

java中事务的使用

文章目录 前言一、同一张表1.业务代码2.测试代码3.测试结果 二、不同表1.业务代码2.测试代码3.测试结果 总结 前言 本文将介绍在springboot中使用Transactional注解来完成对数据库事务的操作,保证数据一致性。 一、同一张表 1.业务代码 Controller Controller p…

停止内耗,做有用的事

很多读者朋友跟我交流的时候,都以为我有存稿,于是听到我说每周四现写的时候都很惊讶。其实没什么好惊讶的,每周四我都会把自己关在书房里一整天,断掉一切电话、微信、邮件,从中午写到晚上,直到写完为止。 这…

算法学习——LeetCode力扣回溯篇1

算法学习——LeetCode力扣回溯篇1 77. 组合 77. 组合 - 力扣(LeetCode) 描述 任何顺序 返回答案。 示例 示例 1: 输入:n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 示例 2: 输…

springboot743二手交易平台

springboot743二手交易平台 获取源码——》公主号:计算机专业毕设大全

《Java 简易速速上手小册》第8章:Java 性能优化(2024 最新版)

文章目录 8.1 性能评估工具 - 你的性能探测仪8.1.1 基础知识8.1.2 重点案例:使用 VisualVM 监控应用性能8.1.3 拓展案例 1:使用 JProfiler 分析内存泄漏8.1.4 拓展案例 2:使用 Gatling 进行 Web 应用压力测试 8.2 JVM 调优 - 魔法引擎的调校8…

第四篇【传奇开心果微博系列】Python微项目技术点案例示例:美女颜值判官

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展思路四、添加不同类型的美女示例代码五、增加难度等级示例代码六、添加特殊道具示例代码七、设计关卡系统示例代码八、添加音效和背景音乐示例代码九、多人游戏…

【解决】idea控制台不输出trace/debug日志

idea控制台不输出trace日志 问题原因解决 问题 idea控制台不输出trace日志。 pom文件&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></dependency>输出lo…

23种计模式之Python/Go实现

目录 设计模式what?why?设计模式&#xff1a;设计模式也衍生出了很多的新的种类&#xff0c;不局限于这23种创建类设计模式&#xff08;5种&#xff09;结构类设计模式&#xff08;7种&#xff09;行为类设计模式&#xff08;11种&#xff09; 六大设计原则开闭原则里氏替换原…

P3612 [USACO17JAN] Secret Cow Code S题解

题目 奶牛正在试验秘密代码&#xff0c;并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。 给定一个字符串&#xff0c;让后面的字符旋转一次&#xff08;每一次正确的旋转&#xff0c;最后一个字符都会成为新的第一个字符&#xff09;。也就是说&#xff0…

localStorage、sessionStorage、cookie区别

localStorage: localStorage 的生命周期是永久的&#xff0c;关闭页面或浏览器之后 localStorage 中的数据也不会消失。localStorage 除非主动删除数据&#xff0c;否则数据永远不会消失 sessionStorage: sessionStorage 的生命周期是仅在当前会话下有效。sessionStorage 引入…

【STM32 CubeMX】STM32中断体系结构

文章目录 前言一、中断体系的比喻二、中断的内部结构2.1 EXTI触发方式 2.2 NVIC2.3 cpu与中断2.4 外部中断控制器框图上升沿触发选择寄存器屏蔽/使能寄存器等待处理寄存器 2.5 中断优先级 总结 前言 一、中断体系的比喻 STM32中断体系如下图所示&#xff1a; 一座大型建筑物…

(二)【Jmeter】专栏实战项目靶场drupal部署

该专栏后续实战示例&#xff0c;都以该篇部署的项目展开操作。 前置条件 参考“&#xff08;一&#xff09;【Jmeter】JDK及Jmeter的安装部署及简单配置” 安装部署Jmeter&#xff0c;从文章最后下载“Postman、Rancher.ova、VirtualBox-7.0.12-159484-Win.exe、Xshell-7.0.01…

VUE学习——表单的输入绑定

使用【v-model】。 输入框 <template><h1>表单输入绑定</h1><input type"text" v-model"message"><p>输入的值&#xff1a;{{ message }}</p> </template> <script>export default{data(){return{messa…

java 数据结构ArrayList类

目录 什么是List 线性表 顺序表 ArrayList类 ArrayList无参方法 ArrayList有参方法 &#xff1f;通配符 ArrayList 的remove方法 ArrayList 的subList方法 Iterator&#xff1a;迭代器 使用ArrayList完成杨辉三角 什么是List 在集合框架中&#xff0c;List是一个接…