参考:http://www.weixueyuan.net/view/6410.html

总结:

  所谓标准输入是指从标准输入设备中输入设备,通常来讲我们可以将标准输入设备理解为键盘。

  cin是标准输入类对象,它一般与输入操作符“>>”一起使用。

  输入的过程是这样的:键盘输入完数据后按下回车键,该行数据就被写入输入缓冲区中,之后输入操作符从缓冲区中提取数据,在提取的过程中会忽略空格、tab键以及换行符等空白字符。

  如果输入流处于正常状态,则cin的返回值为true,否则返回的是false。当cin遇到错误的字符或文件结束符时,输入就会处于非正常状态,此时返回值为0,终止所有数据输入操作。如读取十六进制数据的时候,输入的字符不在0-9、a-f以及A-F范围内时, 输入就会处于非正常状态。

--------------------------------   

所谓标准输入是指从标准输入设备中输入设备,通常来讲我们可以将标准输入设备理解为键盘。cin是标准输入类对象,它一般与输入操作符“>>”一起使用。输入的过程是这样的:键盘输入完数据后按下回车键,该行数据就被写入输入缓冲区中,之后输入操作符从缓冲区中提取数据,在提取的过程中会忽略空格、tab键以及换行符等空白字符

如果输入流处于正常状态,则cin的返回值为true,否则返回的是false。当cin遇到错误的字符或文件结束符时,输入就会处于非正常状态,此时返回值为0,终止所有数据输入操作。

例1:

#include < iostream >
using namespace std; int main()
{
int a;
while ( cin >> hex >> a )
{
cout << a << endl;
}
cout << "The end!" << endl;
return ;
}

在本例中,我们采用循环输入的方式,将输入数据然后直接输出。因为cin返回的也是bool类型,因此可以作为条件判断表达式。在cin后面我们使用了不带参数的操纵器hex,用此操纵器表明我们输入的是16进制数据,在输出的时候我们并没有设置为16进制输出,因此系统通过内部函数将其由输入的16进制转换为10进制,然后输出。当我们输入的字符不在0-9、a-f以及A-F范围内时,cin就会处于非正常状态,返回值为false,退出while循环,之后我们输出The end结束程序。

 

8.4 C++标准输入流的更多相关文章

  1. java 21 - 11 IO流的标准输入流和标准输出流

    标准输入输出流 System类中的两个成员变量: public static final InputStream in "标准"输入流. public static final P ...

  2. Linuxc - 标准输入流、标准输出流、标准错误流

    输入流stdin默认是键盘,输出流stdout默认是显示器,错误流stderr #include <stdio.h> int main() { printf("请输入选择的数字: ...

  3. stdout( 标准输出流)和 stderr( 标准输入流) 重定向问题

    我想把提示信息和错误信息列表都写入到同一个文件里, /* ** 设置流, 使输出与错误流都指向指定的文件 */ if( (output1 = freopen( PATH, "a", ...

  4. java 标准输出流、标准错误输出流、标准输入流及扫描仪

    初步认识标准输出流.错误输出流.输入流.扫描仪 package com.mydemo.controller; import java.util.Scanner; public class HelloW ...

  5. C++中标准输入流cin与Ctrl+Z使用时的问题

    今天使用C++编写了一段小程序,练习使用标准库的算法,代码如下: #include <iostream> #include <algorithm> #include <v ...

  6. Java标准输入流system.in报错: java.util.NoSuchElementException解决方法

    我的程序大概是这样的: main()主函数里面,调用两个自定义的方法,这里我们称之为方法a和方法b: 主函数main()里有一个:Scanner scanner = new Scanner(Syste ...

  7. node 标准输入流和输出流

    使用node 在 CMD 控制台获取输入的指令: 方式一: process.stdin.resume(); process.stdin.setEncoding('utf-8'); process.st ...

  8. 从标准输入流中读取并执行shell指定函数

    巧妙的ohmytmux配置 看oh my tmux的配置,发现他们很巧妙的将配置和shell函数放到一个文件里 比如切换鼠标模式的相关配置和shell函数, # : << EOF # .. ...

  9. Java基础之IO流

    很长时间都没有更新了,最近在补充JavaSE的一些细节部分 关于IO流的一些总结 首先要介绍的是File类,File类用于对文件和目录的一些操作 1.创建文件CreateNewFile() 2.对文件 ...

随机推荐

  1. spring cloud: Hystrix(八):turbine集群监控(dashboard)

    turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个节点,实际生产中都为集群, 因此可以通过turbine来监控集群下hystrix的metrics情况,通过eur ...

  2. gcc请不要优化

    gdb跟踪剖发现free_area_init中一段优化错了,如下:    memset(mem_map, 0, start_mem - (unsigned long) mem_map);    do ...

  3. 自定义session的存储机制

    <?php class MSession implements SessionHandlerInterface{ // reids 对象 protected $handler = null; / ...

  4. 廖雪峰网站:学习python函数—调用函数(一)

    # 调用函数 # 可以直接从Python的官方网站查看文档: # http://docs.python.org/3/library/functions.html#abs n = abs(100) # ...

  5. bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 后缀自动机在tire树上拓展

    题意:有棵树每个点有个颜色(不超过10种),每个节点不超过20个儿子,问你每两点之间的颜色序列不同的有多少种 题解:先建出树,对于每个叶子节点,bfs一遍建在sam上,每次保留当前点在sam上的位置, ...

  6. python模块安装报错大全

    报错 环境 解决 手动安装pip install mysqlclient 报错: _mysql.c(29) : fatal error C1083: Cannot open include file: ...

  7. STL中的拷贝替换算法(so easy)

    #include"vector" using namespace std; #include"string" #include"algorithm&q ...

  8. WDA基础二:界面,元素介绍

    1.ELEMENTS: BUTTON  按钮 CAPTION  标题 DROPDOWN_BY_IDX   带序号的下拉 DROPDOWN_BY_KEY   带键值的下拉 FILE_UPLOAD    ...

  9. CSS text-decoration 属性

    定义和用法 text-decoration 属性规定添加到文本的修饰. 注释:修饰的颜色由 "color" 属性设置. 说明 这个属性允许对文本设置某种效果,如加下划线.如果后代元 ...

  10. 一、集合框架(Collection和Collections的区别)

    一.Collection和Map 是一个接口 Collection是Set,List,Queue,Deque的接口 Set:无序集合,List:链表,Queue:先进先出队列,Deque:双向链表 C ...