【C语言】 字符输入输出函数getchar()和 putchar()的用法

文章目录

  • C语言中的字符输入输出函数:getchar与putchar
    • getchar函数
    • putchar函数
    • C语言中的字符输入输出函数知识点总结
    • 结语

C语言中的字符输入输出函数:getchar与putchar

在C语言中,我们经常需要从用户那里读取输入,或向用户显示输出。对于字符级别的输入和输出,C语言提供了两个简单而强大的函数:getcharputchar

getchar函数

getchar函数是C语言中的一个标准库函数,用于从标准输入(通常是键盘)读取一个字符,并将其作为整数返回。这个函数在stdio.h头文件中定义。

int getchar(void);

getchar函数不需要任何参数,它返回读取的字符。如果读取失败或到达文件末尾(EOF),则返回EOF。在大多数环境中,EOF的值为-1。

以下是一个简单的示例,演示了如何使用getchar函数:

#include <stdio.h>int main() {int c;printf("Please enter a character: ");c = getchar();printf("You entered: %c\n", c);printf("You entered: %d\n", c);return 0;
}

需要注意的是,getchar函数只会读取一个字符,然后返回。如果用户输入了多个字符(例如,输入了一个单词或一句话),则getchar只会返回第一个字符,剩下的字符将留在输入缓冲区中,等待下一次的读取。

接下来,让我们来举一个输入的例子。假设我们要输入字符A,则在程序运行时,你可以这样输入:

A

在这个例子中,用户输入了字符A,程序会读取这个字符并输出"Your entered: A"和"Your entered: 65",分别代表输入的字符和对应的ASCII码值。

如果我们想读取多个字符,可以使用一个循环。在这个示例中,程序会一直读取字符,直到遇到换行符(即用户按下Enter键)或到达EOF为止。每读取一个字符,程序就会立即打印出来。

#include <stdio.h>int main() {int c;printf("Please enter some text: \n");while ((c = getchar()) != '\n' && c != EOF) {putchar(c);}return 0;
}

接下来,让我们来举一个输入的例子。假设我们要输入文本Hello, World!,则在程序运行时,你可以这样输入:

Hello, World!

在这个例子中,用户输入了文本Hello, World!,程序会逐字符读取并输出这段文本,直到遇到换行符为止。

putchar函数

putchar函数是C语言中的一个标准库函数,用于向标准输出(通常是屏幕)写入一个字符。这个函数在stdio.h头文件中定义。

int putchar(int c);

putchar函数接收一个整数参数,这个整数通常是一个字符的ASCII值,然后将其作为字符输出。如果写入成功,函数返回写入的字符。如果写入失败,返回EOF。

以下是一个简单的示例,演示了如何使用putchar函数:

#include <stdio.h>int main() {int c = 'A';putchar(c);return 0;
}

putchar函数通常与getchar函数配合使用,用于从用户那里读取字符,然后再输出这些字符,如下面的示例:

#include <stdio.h>int main() {int c;printf("Please enter a character: ");c = getchar();printf("You entered: ");putchar(c);printf("\n");return 0;
}

当你输入字符 ‘A’ 时,getchar() 函数会读取这个字符并返回其ASCII码值,ASCII码值会被存储在一个 int 类型的变量中。接着,putchar() 函数会将这个ASCII码值转换为对应的字符并输出到控制台上。因为字符 ‘A’ 在ASCII码中对应的整数值就是 65,所以 putchar(65) 会输出字符 ‘A’。

C语言中的字符输入输出函数知识点总结

在C语言中,getcharputchar是用于字符级别输入输出的两个重要函数。以下是关于这两个函数的知识点总结,帮助你更好地理解和记忆它们的使用方法:

  1. getchar函数

    • getchar函数用于从标准输入读取一个字符,并返回其ASCII码值。
    • 函数原型:int getchar(void);
    • 如果读取成功,返回字符的ASCII码值;如果到达文件末尾(EOF)或读取失败,返回EOF(通常为-1)。
    • 示例:int c = getchar();
  2. putchar函数

    • putchar函数用于向标准输出写入一个字符。
    • 函数原型:int putchar(int c);
    • 函数接收一个整数参数,通常是字符的ASCII码值,将其作为字符输出。
    • 如果写入成功,返回写入的字符;如果写入失败,返回EOF。
    • 示例:putchar('A');
  3. 示例用法

    • 使用getchar读取字符并输出:int c = getchar(); putchar(c);
    • 使用getchar循环读取字符直到换行或EOF:while ((c = getchar()) != '\n' && c != EOF) { putchar(c); }
  4. 注意事项

    • getcharputchar通常配合使用,用于字符级别的输入和输出。
    • 需要注意处理EOF情况,以避免无限循环或其他问题。

结语

在C语言中,getcharputchar函数为我们提供了一个简单而强大的工具,使我们能够以字符为单位进行输入和输出。尽管在某些情况下,我们可能需要处理EOF,但在大多数情况下,我们只需要处理用户输入的字符和程序的输出。因此,不必过于深究EOF,只需专注于getcharputchar函数的基本使用即可。

以上就是关于C语言中字符输入输出函数getcharputchar的介绍,希望能对你有所帮助。

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

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

相关文章

第2章信息系统项目管理基础

还没排版之后有时间了重新排版 1、项目的特点:(1)临时性(一次性)(2)独特的产品、服务或成果(3)逐步完善(4)资源约束(5)目的性 2、战略管理包括以下三个过程:①战略制定②战略实施③战略评价 3、PRINCE2提供最佳的项目管理方法论,更加接近项目的实施,更加重视…

JRT菜单

上一章搭建了登录界面的雏形和抽取了登录接口。给多组使用登录和菜单功能提供预留&#xff0c;做到不强行入侵别人业务。任何产品只需要按自己表实现登录接口后配置到容器即可共用登录界面和菜单部分。最后自己的用户关联到JRT角色表即可。 登录效果 这次构建菜单体系 首先用…

使用conda配置python环境

# 基于 python3.6 创建一个名为test_py3 的环境 conda create --name env_py3 python3.6 # 基于 python2.7 创建一个名为test_py2 的环境 conda create --name env_py2 python2.7 # 激活 test 环境 source activate env_py2 或 conda activate env_py2 # 切换到python3 s…

2024年腾讯云服务器最新4核8G服务器价格,轻量CVM报价

2024年腾讯云服务器最新4核8G服务器价格646元15个月&#xff08;买一年送3个月&#xff09;配置为轻量应用服务器、4核8G12M、12M带宽、2000GB月流量、上海/广州/北京、180GB SSD云硬盘、646元15个月&#xff1b;云服务器CVM S5、4核8G、1M/3M/5M带宽可选、不限制流量、上海、5…

深入理解 Vue 3.0 宏函数:提升组件代码的工程化与可维护性

Vue 3.0 宏函数详解&#xff1a;defineProps、defineEmits、defineExpose、defineSlots 和 defineOptions 在 Vue 3.0 中&#xff0c;为了更好地组织和维护组件代码&#xff0c;引入了几个新的宏函数。这些宏函数包括 defineProps、defineEmits、defineExpose、defineSlots 和…

Transformer的前世今生 day09(Transformer的框架概述)

前情提要 编码器-解码器结构 如果将一个模型分为两块&#xff1a;编码器和解码器那么编码器-解码器结构为&#xff1a;编码器负责处理输入&#xff0c;解码器负责生成输出流程&#xff1a;我们先将输入送入编码器层&#xff0c;得到一个中间状态state&#xff0c;并送入解码器…

号码采集协议讲解

仅供学习研究交流使用 需要的进去拿源码或者成品

上位机图像处理和嵌入式模块部署(qmacvisual图像拼接)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 qmacvisual本身提供了图像拼接的功能。功能本身比较有意思的。大家如果拍过毕业照&#xff0c;特别是那种几百人、上千人的合照&#xff0c;应该就…

Rust编程(二)语法和数据类型

编程规范 类C语法&#xff0c;函数需要定义&#xff0c;指令需要以&#xff1b;结尾。需要大括号{} 文件名&#xff0c;变量&#xff0c;函数命名使用snake case&#xff0c;eg&#xff1a;new_function() 结构体&#xff0c;特征命名&#xff0c;使用大驼峰命名&#xff0c;e…

浏览器中输入地址回车后发生了什么?

目录 Step 1&#xff1a;浏览器输入域名&#xff0c;例如输入&#xff1a;www.baidu.com Step 2&#xff1a;浏览器查找域名的 IP 地址&#xff08;DNS 解析&#xff09; Step 3&#xff1a;浏览器与目标服务器建立 TCP 连接&#xff08;3次握手&#xff09; Step 4&#xf…

微信小程序商城构建全栈应用

今天&#xff0c;将之前大学朋友分享给我的好几个小程序内容&#xff0c;简单的从百度网盘下载了一下&#xff0c;重新回顾小程序内容&#xff0c;重新构建融合一些不同语言的元素。下面是网盘的简单截图。 我先挑选了一个微信小程序商城项目&#xff0c;简单看了看&#xff0…

中霖教育:不是会计专业能参加24年的中级会计师考试吗?

经常有很多同学问&#xff1a;我不是会计专业的能报中级会计师考试吗? 先来看报名需要满足的必要条件&#xff1a; 1、大学专科学历&#xff0c;从事会计工作满5年。 2、大学本科学历或学士学位&#xff0c;从事会计工作满4年。 3、第二学士学位或研究生班毕业&#xff0c…

Rust编程(三)生命周期与异常处理

生命周期 生命周期&#xff0c;简而言之就是引用的有效作用域。在大多数时候&#xff0c;我们无需手动的声明生命周期&#xff0c;因为编译器可以自动进行推导。生命周期的主要作用是避免悬垂引用&#xff0c;它会导致程序引用了本不该引用的数据&#xff1a; {let r;{let x …

OpenJudge - 12:加密的病历单

总时间限制: 1000ms 内存限制: 65536kB 描述 小英是药学专业大三的学生&#xff0c;暑假期间获得了去医院药房实习的机会。 在药房实习期间&#xff0c;小英扎实的专业基础获得了医生的一致好评&#xff0c;得知小英在计算概论中取得过好成绩后&#xff0c;主任又额外交给她一…

Partisia Blockchain:真正做到兼顾隐私、高性能和可拓展的公链

目前&#xff0c;包括 Secret Network、Oasis Protocol 等在内的绝大多数以隐私为特性的可编程公链&#xff0c;在兼顾隐私的同时&#xff0c;在可拓展以及性能上或多或少的有所牺牲&#xff0c;即难以对诸多实际应用场景进行支撑。这归咎于链的设计以及共识机制的不合理&#…

袁志佳:前端全栈工程师精英班

教程介绍 本套课程涵盖大前端的全部领域&#xff0c;并对传统的Web前端全栈深入教学。如利用前端知识开发 AI、VR、AR、iOS、Android、PC、Server、智能硬件。 同时我们将核心打造 JavaScript语言新发展、Vue源码分析、前端持续集成方案汇总、MV*框架深度分析 、前端图形学、N…

Python爬虫如何快速入门

写了几篇网络爬虫的博文后&#xff0c;有网友留言问Python爬虫如何入门&#xff1f;今天就来了解一下什么是爬虫&#xff0c;如何快速的上手Python爬虫。 一、什么是网络爬虫 网络爬虫&#xff0c;英文名称为Web Crawler或Spider&#xff0c;是一种通过程序在互联网上自动获取…

目前2024年腾讯云4核8G服务器租用优惠价格表

2024年腾讯云4核8G服务器租用优惠价格&#xff1a;轻量应用服务器4核8G12M带宽646元15个月&#xff0c;CVM云服务器S5实例优惠价格1437.24元买一年送3个月&#xff0c;腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云4核8G服务器优惠价格 轻…

虚拟机如何在原有磁盘上扩容

虚拟机未开启状态–菜单栏–虚拟机–快照–拍摄快照–拍摄快照– 菜单栏–虚拟机–快照–快照管理器–点击刚刚的快照1–删除–是– 文件–新建或者打开–硬盘&#xff08;以本人Win 10.64.3GL为例&#xff09;–虚拟机设置–硬件– 硬盘&#xff08;SATA&#xff09;–磁盘实…

Git基础(24):分支回退

文章目录 前言放弃已修改的内容分支回退到指定commit 前言 将分支回退到之前的某个版本 开发中&#xff0c;可能开发某个功能不需要了&#xff0c;或者想要回退到之前历史的某个commit&#xff0c; 放弃后来修改的内容。 放弃已修改的内容 如果未提交&#xff0c;直接使用 …