C++中while(std::cin >> value)的思考
来源:互联网 发布:女童皮短裙淘宝 编辑:程序博客网 时间:2024/06/11 04:45
例子:
#include <iostream>int main(){ int sum = 0, value = 0; while(std::cin >> value) { sum += value; } std::cout << "sum is " << sum << std::endl; return 0;}
输入运算符( >> ):从左侧istream对象读入数据存入右侧对象中,并返回istream对象作为运算结果。因此,std:cin是while判断的依据。
输入原理:
1(运行VS2010检测)
输入(cin)缓冲是行缓冲。当从键盘上输入一串字符,字符首先是存入缓冲区,cin对象会对缓冲区进行检测,当按回车后,cin就会检测输入缓冲区中是否有了可读的数据。如果有数据就会读入数据存入右侧对象,会自动忽略space空格符,当遇到与右侧对象类型不符的数据时会结束,退出while。
输入:1 2 3 q "enter"
输出:6
在windows中,采用的是阻塞式检测,在回车之后会检测流结束标志 ,在VS中“ctrl+z”作为输入流结束的标志,所以在存入数据的时候,会自动忽略ctrl+z之后的数据。
注:阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查。
输入:1 2 3 “ctrl+z”1 2 "enter"
输出:6
注:gcc在windows上运行的时候,"ctrl + d"为输入流结束标志。
Unix/Linux系统下一般采用非阻塞式的检查 ,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。
0 0
- C++中while(std::cin >> value)的思考
- 关于while(std::cin>>value)
- 关于while (std::cin >> val) 的一些思考
- 出学C++之while (std::cin >> value)问题
- 如何退出while(cin>>value)的循环
- 结束while(cin >> value)
- std::cin>>value返回左操作数std::cin对象
- C++中while(cin)的理解
- C/C++中,写在while循环体的cin.getline()语句执行一次问题
- 关于while(cin>>value)怎么停
- while(cin)的理解
- 在std::cin中按回车的意义探究
- 【C++】 cin错误导致的while()死循分析
- C++:关于while(cin>>str)无法结束的问题
- while(cin>>a)的原理
- while(cin>>string)的使用方法
- C/C++中cin,cin.getline,getline的用法
- if(cin) while(cin) 以及 while(cin>>x) 条件表达式中的 流对象cin 的用法
- Memory : Stack vs Heap
- 黑马程序员_IO流(对象的序列化和反序列化)
- 事件篮方法 - 如何管理好自己的时间
- 黑马程序员_IO流(RandomAccessFile)
- The difference between JS and jQuery
- C++中while(std::cin >> value)的思考
- foo
- C语言结构体的对齐原则
- 结构体的数组成员变量对齐
- spring重装
- ES6学习——新的语法:Symbols——Symbol.iterator
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- 【NOI2015】小园丁与老司机 DP 网络流
- NSSet使用小结