C/C++ getchar函数 - C语言零基础入门教程

目录

  • 一.getchar 函数简介
    • 1.getchar 原理
    • 2.getchar 函数声明
    • 3.getchar 使用场景
  • 二.getchar 函数使用
  • 三.getchar 函数妙用
  • 四.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.getchar函数简介

1.getchar 原理

getchar 函数用于获取用户输入,达到人机交互的目的,当程序调用 getchar 时,程序就等着用户键盘按键并将用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中),当用户键入回车之后,getchar 才开始从缓冲区中读入字符,例如:用户按下键盘的 a 键,那么 getchar 函数就返回字符 a

2.getchar 函数声明

该函数声明在`stdio.h`头文件中,使用的时候要包含stdio.h头文件。如:

#include<stdio.h>
/*
*函数描述:获取控制台用户的输入字符
*
*返回值:返回用户输入值对应的 char 值
*/
char getchar(void)

C 语言中对于控制台程序,我们一般通过 printf 函数输出信息到控制台窗口显示,getchar 函数则是可以从控制台获取用户的输入,而达到和用户交互的目的,注意两者的区别!

3.getchar 使用场景

1.可以和用户交互,获取用户的键盘输入,例如:用户按下键盘的 a 键,那么 getchar 函数就返回字符 a

2.对于 win32 控制台而言,getchar 函数和 system("pause") 函数作用类似,解决控制台黑屏窗口一闪而过的问题;

二.getchar函数使用

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ getchar函数
//@Time:2021/08/04 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include "stdafx.h"
#include "stdio.h"
#include "windows.h"int _tmain(int argc, _TCHAR* argv[])
{printf("请输入字符:\n");char c = getchar();printf("获取到您输入的字符:%c\n",c);system("pause");return 0;
}/*请输入字符:
w
获取到您输入的字符:w
请按任意键继续. . .*/

因为我输入的是 w ,所以 getchar 函数返回的就是 w ,你输入任意按键都是可以的;值得注意的是:

  • 1.getchar 函数返回的字符对应的占位符是 %c
  • 2.getchar 函数只能获取单个字符;
  • 3.回车键'\n'也在缓冲区中,并作为最后一个字符被 getchar 函数取出;

如果在回车按下之前输入了多个字符,所有的字符都会被存在缓冲区中,`getchar 函数会默认返回第一个字符,例如:我们在回车之前输入了 12345 ,如何把缓冲区的所有字符都获取到呢?

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ getchar函数
//@Time:2021/08/03 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include "stdafx.h"
#include "stdio.h"
#include "windows.h"int _tmain(int argc, _TCHAR* argv[])
{char c = getchar();for (;;) //死循环{if (c == '\n') //检查是不是回车键{printf("最后一个字符啦 %c \n", c);break;}else{printf("获取缓冲区字符 %c \n", c);c = getchar();}}system("pause");return 0;
}/*
12345
获取缓冲区字符 1
获取缓冲区字符 2
获取缓冲区字符 3
获取缓冲区字符 4
获取缓冲区字符 5
最后一个字符啦请按任意键继续. . .*/

由上面代码可以明白,回车'\n'按键是缓冲区中最后一个字符;

三.getchar函数妙用

一般控制台程序在运行的时候,只看到一个黑窗口一闪而过,具体显示的什么根本来不及看,在前面的文章中我们介绍了可以通过 system 函数解决这个问题,而今天我们使用 getchar 函数一样能完成这个功能,因为在调用 `getchar 函数之后,程序回一直等待用户输入直到按下回车之后程序才会继续执行,示例代码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ getchar函数
//@Time:2021/08/03 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include "stdafx.h"
#include "stdio.h"int _tmain(int argc, _TCHAR* argv[])
{printf("猿说编程 - python和C++教程\n");getchar();printf("程序结束\n");return 0;
}
/*
猿说编程 - python和C++教程
*/

运行这个程序,控制台输出了第一个 printf 函数的内容:猿说编程 – python和C++教程 ,而第二个 printf 函数的内容: 程序结束 并没有显示到控制台,是因为 getchar 函数在等待我们输入任意字符并按下回车;

当我们按下键盘任意按键并敲回车之后,程序立即输出第二个 printf 函数的内容: **程序结束 **,然后主函数 `main 结束,程序退出,控制台窗口消失;

四.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 使用指针遍历数组
  3. C 语言 指针和数组区别
  4. C 语言 指针数组和数组指针区别
  5. C 语言 野指针
  6. C 语言 函数值传递和址传递
  7. C 语言 函数不定长参数
  8. C 语言 函数指针
  9. C 语言 指针函数
  10. C 语言 回调函数 callback
  11. C 语言 #pragma once
  12. C 语言 #include <> 与 #include “” 区别
  13. C 语言 const 修饰函数参数
  14. C 语言 const 和 define 区别
  15. C 语言 #运算符
  16. C 语言 ##运算符
  17. C 语言 __VA_ARGS__
  18. C 语言 ##__VA_ARGS__
  19. C 语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C 语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C 语言 main 函数
  22. C 语言 main 函数参数 main(int argc, char *argv[])
  23. C 语言 局部变量
  24. C 语言 全局变量
  25. C 语言 全局变量和局部变量区别
  26. C 语言 static
  27. C 语言 extern
  28. C/C++ putchar 函数
  29. C/C++ getchar 函数

未经允许不得转载:猿说编程 » C/C++ getchar 函数

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

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

相关文章

OpenStack精华问答 | OpenStack都有哪些基础服务?

戳蓝字“CSDN云计算”关注我们哦&#xff01;关于OpenStack的探讨几乎从未间断&#xff0c;从2010年10月份一个版本正式发布至今&#xff0c;OpenStack在8年发展历程中&#xff0c;成为了最有争议的那一个。今天&#xff0c;我们就来看看有关于OpenStack的精华问答吧1Q&#xf…

React之类式组件

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_类式组件</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <scri…

C/C++ atoi函数 - C语言零基础入门教程

目录 一.atoi 函数简介二.atoi 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.atoi 函数简介 在 stdlib.h 中 atoi 函数,可用于将 char 字符串转为 int 整数类型&#xff0c;语法如下&#xff1a; /* *描述&#xff1a;将一个…

要闻君说:小米9已确认无线充电;华为着手操作的5G火车站启动建设仪式将于本月18日“登陆”;三星提出大力发展电信网络设备业务……...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 嗨&#xff0c;大家好&#xff01;偶是要闻君。新的一年诸多工作已紧锣密鼓在排队&#xff0c;《云要闻》栏目也将继续用心陪伴在看官们周围&#xff0c;工作日第一天&#xff0c;来…

React之初始化state

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>state</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> <script ty…

C/C++ itoa函数 - C语言零基础入门教程

目录 一.itoa 函数简介二.itoa 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.itoa 函数简介 在 stdlib.h 中 itoa 函数,可用于将 int 整数类型转为 char 字符串&#xff0c;语法如下&#xff1a; /* *描述&#xff1a;将一个…

Storm精华问答 | task与executor有什么关系?

戳蓝字“CSDN云计算”关注我们哦&#xff01;归于Apache社区&#xff0c;Storm被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍。而目前已是分布式技术领域最新爆发点&#xff0c;Storm更是流计算技术中的佼佼者和主流。今天我们就一起来看看Sto…

React之props基本使用

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_props基本使用</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id"test2&qu…

C/C++ atof函数 - C语言零基础入门教程

目录 一.atof 函数简介二.atof 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.atof 函数简介 在 stdlib.h 中 atof 函数,可用于将 char 字符串转为 float / double 浮点数类型&#xff0c;语法如下&#xff1a; /* *描述&…

K8S安全军规101:对CNCF最佳实践的扩充

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | GOINS本文转载自公众号&#xff1a;RancherLabs在昨天的文章里&#xff0c;我们分享了CNCF为广大Kubernetes用户建议的9项Kubernetes安全最佳实践&#xff0c;分享了用户使用Kubernetes管理集群时的9个能进一步确保集群安全的…

React之类式组件中的构造器与props

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_类式组件中的构造器与props</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id&q…

C/C++ ltoa函数 - C语言零基础入门教程

目录 一.ltoa 函数简介二.int 和 long 区别三.ltoa 函数函数实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.ltoa 函数简介 在 stdlib.h 中 ltoa 函数,可用于将 long 整数类型转为 char 字符串&#xff0c;语法如下&#xff1a; /* *描…

要闻君说:小米手机部组织架构突现大调整;河南联通重启VDC扩容工程招标;英特尔已收购Ineda Systems,剑指独显;...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。伴随着汤圆节“落幕”&#xff0c;过年的喜庆正式进入尾声&#xff0c;本周过半&#xff0c;鼓足精神工作啦&#xff01;文/要闻君据了解&#xff0…

React之函数式组件使用props

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>3_函数式组件使用props</title> </head> <body> <!-- 准备好一个容器 --> <div id"test1"></div> <div id"te…

C/C++ ultoa函数 - C语言零基础入门教程

目录 一.ltoa 函数简介二.int/long/unsigned long 区别 1.无符号整形&#xff08;16 位系统&#xff09;2.有符号整形&#xff08;16 位系统&#xff09;3.int 和 long 区别 三.ultoa 函数函数实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门…

2019年中国IT市场趋势热点

戳蓝字“CSDN云计算”关注我们哦&#xff01;本文转载自公众号&#xff1a;中桥调研咨询向数字化转型已经深入人心&#xff0c;在数字经济下&#xff0c;IT架构正在向以数字为核心转变&#xff0c;云计算的普及和多元化趋势驱动了人工智能和物联网的快速发展&#xff0c;而两者…

React之jsx小练习

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>jsx小练习</title> <style> .title{ background-color: orange; width:200px; } </style> </head> <body> <!-- 准备好一个容器 --&…

C/C++ strtod函数 - C语言零基础入门教程

目录 一.strtod 函数简介二.strtod 函数函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strtod 函数简介 在 stdlib.h 中 atof 函数,可用于将 char 字符串转为 float / double 浮点数类型&#xff0c;而 C 语言中 strtod 函数&…

2019年最值得关注的五大微服务发展趋势

戳蓝字“CSDN云计算”关注我们哦&#xff01;译文 | Andy本文转载自公众号&#xff1a;Docker2018年对于DevOps社区来说无疑是重要的一年。Kubernetes成为第一个从云原生计算基金会&#xff08;简称CNCF&#xff09;毕业的项目&#xff1b;Pivotal公司完成了首轮公开募股&#…

React之组件与模块

1.模块 1&#xff09;就是js文件 2&#xff09;为什么拆成模块&#xff0c;代码多、杂 3&#xff09;作用&#xff1a;复用js&#xff0c;简化js&#xff0c;提高js运行效率 2.组件 1&#xff09;代码资源的集合&#xff08;html、css、js、image&#xff09; 2&#xff…