关于c++的输入
vector<int> iv1, iv2;
cout << "请为第一个vector容器装填整数元素,以s结尾:" << endl;
int num = 0;
while(cin >> num)
{
iv1.push_back(num);
}
print(iv1.begin(), iv1.end()); // 自己写的打印容器函数
//cin.clear();
//cin.sync();
cout << "请为第二个vector容器装填整数元素,以s结尾:" << endl;
while(cin >> num)
{
iv2.push_back(num);
}
cout << "iv2: " << endl;
print(iv2.begin(), iv2.end());
上面这段代码在为第一个容器填入数据之后,再为第二个容器填入数据时会直接跳过循环,直接输出第二个容器。
下面附上我的调试过程:
1.加上cin.clear() 调试,无效。 // clear函数用来把错误状态修正,因为第一次循环中有cin>>num,输入了s对应的类型不对,所以会有错误状态
2.加上了cin.get(),还是无效,我的想法是会不会是我输入的s这个字符还在缓冲区,用cin.get()吃掉,仍然失败。。。
3.没辙了,用c语言的清除缓冲区:scanf("%*[^\n]");scanf("%*c");没用。。。
4.百度搜了一下,发现了一个函数cin.sync();准确的讲是sync()函数,完美解决问题,这个就是输入流的清除缓冲区函数.
5.今天早上来完善后备功能时,仔细想了想,昨天用cin.get()时真的把字符s清掉了吗?没有!!!因为我打完s之后有一个回车键,所以要两个cin.get()才能吃掉字符s.
算是告一段落吧,总之cin.clear()清除错误状态,cin,sync()是清缓冲区。
关于c++的输入的更多相关文章
- Mapreduce的文件和hbase共同输入
Mapreduce的文件和hbase共同输入 package duogemap; import java.io.IOException; import org.apache.hadoop.co ...
- mapreduce中一个map多个输入路径
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- UITextView 输入字数限制
本文介绍了UITextView对中英文还有iOS自带表情输入的字数限制,由于中文输入会有联想导致字数限制不准确所以苦恼好久,所以参考一些大神的博客终于搞定,欢迎大家参考和指正. 对于限制UITextV ...
- scanf()中清除输入缓冲区的几种方法归纳
应用场景:我们使用多个scanf()的时候,如果输入缓冲区还有数据的话,那么scanf()就不会询问用户输入,而是直接就将输入缓冲区的内容拿出来用了,这就导致了前面的错误影响到后面的内容,为了隔离这种 ...
- logstash file输入,无输出原因与解决办法
1.现象 很多同学在用logstash input 为file的时候,经常会出现如下问题:配置文件无误,logstash有时一直停留在等待输入的界面 2.解释 logstash作为日志分析的管道,在实 ...
- iOS 委托与文本输入(内容根据iOS编程编写)
文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑 JXHypnosisViewController.m 修改 loadView 方法,向 ...
- WPF 捕获键盘输入事件
最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEven ...
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Html5下拉控件同时支持文本输入和下拉代码
有时候,下拉框不能满足我们的业务需求,还需要同时支持用户输入内容,默认的select标签是不支持用户输入的,下面我说一下原生的select如何支持用户输入,代码如下: <!DOCTYPE htm ...
随机推荐
- linux下mysql的表名问题
最近从win转移到了linux,在本机跑好的程序但在linux下一个SQL语句报了错误,发现是表名未找到,错误原因是在linux下mysql的表名是严格区分大小写的.. MYSQL在LINUX下数据库 ...
- Java NIO 缓冲技术详解
缓冲区(buffer)是从即将写入通道(channel)或刚刚从通道中读出的一段数据.它是一个持有数据,并扮演NIO通道端点的对象.缓冲区为数据访问和读写过程提供正式机制. 它是NIO和老版Java ...
- 跟我一起写Makefile:MakeFile介绍
makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序. 首先,我们用一个示例来说明makefile的书写规则.以便给大家一个感性认识.这 ...
- Webdriver:Unsupported Marionette protocol version 2, required 3
升级到firefox到47以上版本即可 坑人的Mozilla不能起个我们熟识的名字吗? 先是webdriver.gecko.driver后是Marionette protocol. 1.WebDr ...
- 如何判断C#的Finalizer线程有没有被阻塞
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何判断C#的Finalizer线程有没有被阻塞.
- powerDesigner的初步使用
今天初步学习了PowerDesigner,主要学习的内容有以下几个方面: 1.powerDesigner的功能之一是建立一个数据库的关系图,这里选用的数据库是MySql,基本的建立过程是这样的: a. ...
- 保留脚本中变量(dot)
脚本 d:\dot.ps1 内容如下: $hostwrite-host "hh"$m="pp"$a ="cc" 通过 . 方式运行脚本 ...
- autocommit=0
mysql; Query OK, rows affected (0.00 sec) mysql> create table test( a int); Query OK, rows affect ...
- OOM-killer 线上设置 +vm +OOM机制
http://blog.csdn.net/tenfyguo/article/details/9409743 http://blog.csdn.net/tenfyguo/article/details/ ...
- linux gnome 安装
首先先下载x-window的内核:apt-get -u install x-window-system-core:下载登录管理界面gdm或kdm:apt-get -u install gdm gdm- ...