C++字符读入函数(getch&getchar)

对于字符的读入,我们有scanf和cin这两个最为经典的函数,但是我们发现这两个函数写的都会比较麻烦或难看,而且耗费的时间复杂度较多。

而cstdio和conio.h头文件为了解决这个问题分别提供了两个函数——getch和getchar函数。

getch函数

所在头文件:conio.h

char ch = getch();

功能:getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回。输入的字符不会回显在屏幕上。getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。

返回值:读入成功返回读取的字符。失败返回-1。

参数:无

getchar函数

所在头文件:cstdio

char ch = getchar();

功能:当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。并将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。

其实上下两行代码的意思是一样的

c = getchar();
scanf("%c", &c);

返回值:读入成功返回读取的字符。失败返回-1。

参数:无

运行实例

备注:getch与getchar的本质区别是只要键盘上某个按键被按下getch就返回,而getchar要等到有回车了开始读入。并且getch读入的字符是不显示在屏幕上的,而getcha是时显示的。

以下为代码

# include <cstdio>
# include <iostream>
# include <cmath>
# include <cstring>
# include <algorithm>
# include <conio.h>
using namespace std;

# define FOR(i, a, b) for(int i = a; i <= b; i++)
# define _FOR(i, a, b) for(int i = a; i >= b; i--)

int main()
{
	cout << "getch请输入一个字符:" << endl;
	char c = getch();
	cout << "读入的字符是" << c << endl; 
	
	cout << "===================================" << endl; 
	
	cout << "getchar请输入一个字符:" << endl;
	c = getchar();
	cout << "读入的字符是" << c << endl; 
	return 0;
}

God Bless You For Ever!

发布了33 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/SkeletonKing233/article/details/99674711