C++中cin.get(),cin.getLine(),getChar(),getch()的区别

一、get()函数

get()函数除了可以用cin输入标准类型的数据外,还可以用istream类流对象的一些成员函数,实现字符的输入。

get有三种形式,无参数,一个参数,和三个参数的。

(1)无参数

cin.get()用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符,若遇到输入流的文件结束符,则函数返回值为EOFEOF是在iostream头文件中定义的符号常量,代表-1)。

从键盘读取

int main()
{
	char c;
	while (c=cin.get() )
	{
		cout <<"字符:"<

输入:abc回车

输出结果:

C++中cin.get(),cin.getLine(),getChar(),getch()的区别_第1张图片

②从文件读取

int main()
{
	ifstream cin("test.txt");
	char c;
	while (c=cin.get() )
	{
		cout <<"字符:"<

test.txt中写入abc时候运行结果为:

C++中cin.get(),cin.getLine(),getChar(),getch()的区别_第2张图片

(2) 有一个参数

cin.get(ch)

其作用是从输入流中读取一个字符,赋给字符变量ch,如果读取成功则函数返回真,如失败(遇文件结束符)则函数返回假。

(3) 有三个参数的get(第三个参数可填可不填)

cin.get(字符数组,字符个数n,终止字符)

cin.get(字符数组,字符个数n,终止字符)其作用是从输入流中读取n-1个字符,赋给指定的字符数组,如果在读取n-1个字符之前遇到指定的终止字符,则提前结束读取。如果读取成功,则函数返回非0值;如果失败(遇文件结束符)返回0

注意这里的读取字符数组只有读取n-1个字符,第n个字符为/0

二、getline()

getline()函数的作用是从输入流读取一行字符,其用法与带3个参数的get函数类似。

cin.getline(字符数组,字符个数n,终止标志字符)

三、getch()

头文件conio.h

getch()是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!

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

int main()
{
	char c;
	while (c = getch())
	{
		cout << int(c) << " ";
	}
}

输入:abc

输出:97 98 99

四、getchar()

能: stdio流中读字符

头文件:stdio.h

法: int getchar(void);

getchar有一个int型的返回值.当程序调用getchar.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.

{
char a, b;
	a = getchar();
	b = getchar();
	cout << a << " " << b << endl;
}
如果想在上面程序中给ab分别赋值 x,y则直接输入 xy即可,如输入 x-回车 -y则结果为: a = x , b = ’\n(换行符)

你可能感兴趣的:(C++)