C语言 百分网手机站

C++ cin输入流详解

时间:2020-10-04 13:27:01 C语言 我要投稿

C++ cin输入流详解

  标准输入流是从标准输入设备(键盘)流向程序的数据。在头文件iostream.h中定义了cin、cout、cerr、clog 4个流对象,cin是输入流,cout、cerr、clog是输出流。下面是小编为大家整理的C++ cin输入流详解,欢迎参考~

  cin是istream类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过流提取符“>>”从流中提取数据。流提取符“>>”从流中提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符。

  注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓冲区,形成输入流,提取运算符“>>”才能从中提取数据。需要注意保证从流中读取数据能正常进行。

  例如:

    int a,b;

    cin>>a>>b;

  若从键盘上输入

    21 abc↙

  变量a从输入流中提取整数21,提取操作成功,此时cin流处于正常状态。但在变量b准备提取一个整数时,遇到了字母a,显然提取操作失败了,此时,cin流被置为出错状态。只有在正常状态时,才能从输入流中提取数据。

  当遇到无效字符或遇到文件结束符(不是换行符,是文件中的'数据已读完)时,输入流cin就处于出错状态,即无法正常提取数据。此时对cin流的所有提取操作将终止。在 IBM PC及其兼容机中,以Ctrl + Z表示文件结束符。在UNIX和Macintosh系统中,以 Ctrl + D表示文件结束符。当输入流cin处于出错状态时,如果测试cin的值,可以发现它的值为false(假),即cin为0值。如果输入流在正常状态,cin的值为true(真),即cin为 一个非0值。可以通过测试cin的值,判断流对象是否处于正常状态和提取操作是否成功。如:

    if(!cn) //流cin处于出销状态,无法正常提取数据

      cout<<"error 56="" 89="" 100="" using="" namespace="" int="" float="" enter="" the="" return="" grade:="">>"提取100,赋给grade,进行if语句的处理。然后再遇到"/",认为是无效字符,cin返回0。循环结束,输出"The end."。

  在不同的C++系统下运行此程序,在最后的处理上有些不同。以上是在GCC环境下运行程序的结果,如果在VC++环境(笔者使用win7系统)下运行此程序,在键入Ctrl + Z 时,需要敲击两次回车,程序才输出"The end."。

【C++ cin输入流详解】相关文章:

C++ this指针详解11-26

c++快速排序详解12-13

c++ 中--declspec 的用法详解12-14

C++ 排序插入排序详解12-07

C++类中的继承实例详解10-20

C++ boost::asio编程-域名解析详解11-18

C++的字符串分割函数的使用详解12-09

C++跳转语句之Goto对变量定义的影响详解11-15

Dev C++安装教程12-15