关于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 ...
随机推荐
- HW5.5
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- ZOJ-2362 Beloved Sons 贪心 | KM
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362 裸的匹配问题,直接KM,就算是O(n^4)的KM也不会超. ...
- Scala的安装(本地)
前言 Scala版本的选法: 目前,Kafka库和JDBC并不支持Scala2.11的编译,以及结合大多数人的使用请来看. scala2.10.*为主,在这,scala2.10.4版本,强烈 ...
- python学习(4)
python(4)4.1 高阶函数:map/reduce map:实际上map也是一个函数,只不过他可以在参数里面包含别的函数.他有两种参数:第一种:函数(作用在后面要说的序列上),第二种:一个序列 ...
- Webview 中 Javascript 无法调用 Java 对象
[问题产生] Webview 通过 addjavascriptInterface 传递对象给前端,一切正常.但是 Android官方已提醒此功能是有安全风险,改用 safe-java-js-webvi ...
- IOS开发UI篇之──自定义UIActionSheet
转载自:http://www.cnblogs.com/pengyingh/articles/2343200.html UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都 ...
- 雄踞AppStore榜首的游戏<别踩到白块儿>源码分析和下载(一)
AppStore和Android市场情况 莫名其妙爆红的游戏 真的莫名其妙,笔者下这个游戏两次.第一次在豌豆荚排行榜看到这款游戏,名字怪怪的,下载下来尝试一下,没认为有什么新颖的,还在思虑这是不是刷榜 ...
- hud 1241 Oil Deposits
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- 进程控制之更改用户ID和组ID
在UNIX系统中,特权(例如能改变当前日期的表示法以及访问控制(例如,能否读.写一特定文件))是基于用户ID和组ID的.当程序需要增加特权,或需要访问当前并不允许访问的资源时,我们需要更换自己的用户I ...
- struts2+ajax
web网页开发中需要用到struts2来处理action,通过struts2定义后端java类. <action name="loginAction" class=" ...