c++中cin.get的用法

  介绍

本篇内容主要讲解“C + +中cin.get的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C + +中cin.get的用法”吧!

与字符串输入一样,有时候使用cin>比;读取字符也不会按我们想要的结果行事。

例如,因为它会忽略掉所有前导白色空格,所以使用cin>比;就不可能仅输入一个空格或回车符。除非用户输入了空格键,制表符之外的其他字符,否则程序将不可能通过cin语句继续执行(一旦输入了这样的字符,在程序可以继续下一个语句之前,仍然需要按回车键),因此,要求用户”按回车键继续”的程序,不能使用在比;运算符只读取按回车键的行为。

在这些情况下,cin对象有一个名为得到的内置函数很有帮助因。为得到函数是内置在cin对象中的,所以可称之为cin的一个成员函数. get成员函数读取单个字符,包括任何白色空格字符。如果程序需要存储正在读取的字符,则可以通过以下任意一种方式调用得到成员函数。

在这两个例子中,假设cin是正被读入字符的字符变量的名称:

cin。得到(ch);
ch=cin.get ();

如果程序正在使用得到函数简单地暂停屏幕直到按回车键,并且不需要存储字符,则该函数也可以这样调用:

cin.get ();

请注意,在所有这3个编程语句中,得到函数调用的格式实际上是一样的。首先是对象的名称,在此示例中它是cin。然后是一个句点,其后是被调用的成员函数的名称,在这里当然就是。语句的末尾是一组括号和一个表示结束的分号。这是调用任何成员函数的基本格式,如图1所示。

 C + +中cin。得到的用法
图1成员函数调用的基本格式

下面的程序演示了使用得到成员函数的所有3种方式:

//,却;能够program  demonstrates  three  ways 用use  cin.get ()//,用pause  a 程序。   # include  & lt; iostream>   using  namespace 性传播疾病;      int  main ()   {   ,,,char  ch;   ,,,cout  & lt; & lt;,“却;能够program  has 停了只Press  Enter 用继续!”   ,,,cin.get (ch);   ,,,cout  & lt; & lt;,“It  has  paused  a  second 时间只Please  press  Enter 又干净,ch =, cin.get ();   ,,,cout  & lt; & lt;,“It  has  paused  a  third 时间只Please  press  Enter 再次!”;   ,,,cin.get ();   ,,,cout  & lt; & lt;,“Thank 你!,\ n";   ,,,return  0;   }

程序输出结果:

这个项目已经停了下来。按回车键继续。
第二次停了下来。请再按Enter键。
第三次停了下来。请再按Enter键。
谢谢!

注意,在IDE中运行程序时,当程序终止,则输出窗口会关闭,而cin。得到函数可用于保持输出屏幕可见。

混合使用cin>比;和cin。

将cin祝辞祝辞与cin。得到混合使用可能会导致烦人且难以发现的问题。请看下面的代码段示例:

char  ch;,,,,//定义一个字符变量   int 数量;,//定义一个整型变量   cout  & lt; & lt;,“Enter  a 号码:,”;   ,cin 的在祝辞,数量,,,,//,读取整数   cout  & lt; & lt;,“Enter  a 性格:,“;   时间=ch  cin.get(),,,,,//,读取字符   cout  & lt; & lt;,“Thank 你! \ n";

这些语句允许用户输入一个数字,而不是一个字符。看来第6行的cin。得到语句已经被跳过了。这是因为cin>比;和cin。得到了使用略有不同的技术来读取数据。

在示例代码段中,当执行第4行时,用户输入一个数字,然后按回车键。假设输入的是数字100。按回车键会导致一个换行符(& # 39;\ n # 39;)存储在键盘缓冲区数100字之后,如图2所示。

 C + +中cin。得到的用法
图2键盘缓冲区存储和读取示意图

当第4行中的cin>比;语句读取用户输入的数据时,它会在遇到换行符时停止。换行字符未被读取,而是仍保留在键盘缓冲区中。从键盘读取数据的输入语句只在键盘缓冲区为空时等待用户输入值,但现在不为空。

当第6行中的cin。得到函数执行时,它开始从先前输入操作停止的键盘缓冲区读取,并发现了换行符,所以它无须等待用户输入另一个值。这种问题最直接的解决办法是使用cin。忽略函数。

c++中cin.get的用法