cin对象有一个名为get的内置函数很有帮助。因为get函数是内置在cin对象中的,所以可称之为cin的一个成员函数。get成员函数读取单个字符,包括任何白色空格字符。如果程序需要存储正在读取的字符,则可以通过以下任意一种方式调用get成员函数。
cin.get函数执行时,它开始从先前输入操作停止的键盘缓冲区读取,并发现了换行符,所以它无须等待用户输入另一个值。这种问题最直接的解决办法是使用cin.ignore函数。
假设cin是正被读入字符的char变量的名称:
cin.get(ch);
ch=cin.get();
如果程序正在使用get函数简单地暂停屏幕直到按回车键,并且不需要存储字符,则该函数也可以这样调用:
cin.get();
在所有这3个编程语句中,get函数调用的格式实际上是一样的。首先是对象的名称,在此示例中它是cin。然后是一个句点,其后是被调用的成员函数的名称,在这里当然就是get。语句的末尾是一组括号和一个表示结束的分号。这是调用任何成员函数的基本格式。
扩展资料
例:
//Thisprogramdemonstratesthreewaystousecin.get()
//topauseaprogram.
#include<iostream>
usingnamespacestd;
intmain()
{
charch;
cout<<"Thisprogramhaspaused.PressEntertocontinue.";
cin.get(ch);
cout<<"Ithaspausedasecondtime.PleasepressEnteragain.";ch=cin.get();
cout<<"Ithaspausedathirdtime.PleasepressEnteragain.";
cin.get();
cout<<"Thankyou!\n";
return0;
}
cin.get()是保留回车在输入流队列中的,
而cin是丢弃回车的。
ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中。这时你输入一个字符,然后回车。get()收到回车或空格或制表符就停止输入了、此时,输入流队列中留下一个回车。
num=cin.get();这是第二次输入。因为第一次用了get,所以输入流队列中有个回车。则get()接受这个回车。又因为get()收到回车或空格或制表符就停止输入。
所以这一次的输入就是一个回车,
可以num=cin.get();之前把回车给弄了。你应该想到了。就用cin.get(),把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了。
扩展资料
cin运行机制解析:
C++的cin究竟确切含义是什么呢?很多初学者第一次接触cin时,当程序运行到cin指令时,程序自动会中断,然后等待用户从键盘中输入信息。只有当用户输入完成,按下回车之后,程序才会继续往下运行。
这个过程很容易让初学者产生误会,认为cin就是调用电脑键盘进行输入的指令。也是因为这个错误的认知,会引起一系列的误会。例如上文中图4,虽然程序中有三次cin,但其实我们只要从键盘里输入一次,就可以完成全部输入工作,不一定非得分开三次从键盘输入。
cin本质和其它C++变量一样,它也是一个变量名,它被定义在iostream文件里。因此,我们要使用cin功能时,就必须导入头文件<iostream>。在C++中,变量名通常实质是代表着一段内存区域,
同样的道理,cin这个变量其实也是映射到一段内存区域里面,我们可以认为cin实际上代表着一段内存缓冲区,这段缓冲区的作用是,用于缓存从键盘输入的信息。
while循环,进入循环后,判断字符串是否结束,所以需要再次得到字符串的下一个。
是将输入的一个字符(包括空白字符)的ascii码值作为函数
返回值
赋值给ch
cin.get(ch)功能一致,注意函数参数是字符引用,因此ch也被改变为输入的一个字符,但是函数的返回值
是流
的引用,因此可以这样一直进行下去:
char
a,
b;
cin.get(a).get(b);
包括空格和回车键都作为一个输入字符给字符型变量时,必须使用函数cin.get()。
格式为
cin.get(字符型变量)
该语句一次只能从输入行中提取一个字符。