`

使用istream_iterator,copy后cin不能在输入问题的解决

阅读更多

 

今天使用istream_iterator和copy将输入保存在vector的数组中,但是输入完之后就不能在使用cin进行输入了,如:cin>>input;这句总是不能被执行,原因是copy的结束是eof,也就是标准输入的结尾标记是istream_iterator<unsigned short>(),这个是被标记成一输入错误,后面的标准输入就不能进行下去了……

 

istream_iterator<unsigned short> is(cin);  
istream_iterator<unsigned short> eof; 
vector<unsigned short> harr; 
copy(is, eof, back_inserter(harr));

 

 应该在再次使用标准输入之前调用cin的clear和sync,clear()函数是清理标准输入错误的,sync()是清理缓存区的。

 

istream_iterator<unsigned short> is(cin);  
istream_iterator<unsigned short> eof; 
vector<unsigned short> harr; 
copy(is, eof, back_inserter(harr));

cin.clear();
cin.sync();

 

在调用copy之前应该调用sync()确保标准输入区缓存区为空的,如果没有调用cin.sync(),input的内容也会输入到harr数组中去

cin>>input;
cin.sync();


istream_iterator<unsigned short> is(cin);  
istream_iterator<unsigned short> eof; 
vector<unsigned short> harr; 

copy(is, eof, back_inserter(harr));
 
分享到:
评论

相关推荐

    istream_iterator 读取输入文件

    C++ primer 第五版 中文版 练习 10.33 ...使用istream_iterator 读取输入文件。使用ostream_iterator将奇数写入第一个输出文件,每个值后都跟一个空格。将偶数写入第二个输出文件,每个值都独占一行。

    c-plus_learn:一些尝试学习

    使用istream_iterator和ostream-iterator来管理文本信息的转换。 3.我把它放在2之内。 4,使用map来存储txt中的信息,并排除列表中的某些单词。 5.类似于4,但输出文件以显示结果。 6.使用地图和向量查找家庭成员的...

    用IStream读取保存图像

    用IStream读取图像,用Istorge保存

    IStream.zip IStream.tlb

    [VB]GDI+ IStream StdPicture Byte 互转 原网页已经删除了 所以在这里提供了

    iStream DDS产品简要介绍

    数据库复制软件iStream DDS产品简要介绍

    C语言头文件 ISTREAM.H

    C语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件 ISTREAM.HC语言头文件...

    IStream的软件源码

    IStreamVB经典源码,别的地方都找不到,本站长期提供原创源码

    基于C++开发的宠物小屋源码+项目说明+sln解决方案(课程设计).zip

    【资源说明】 基于C++开发的宠物小屋源码+项目说明+sln解决方案(课程设计).zip 基于C++开发的宠物小屋源码+项目说明+sln...- 作者之前使用的VS2012是可以正常运行的,不同的版本可能会有一点点小问题,但都很容易解决。

    STL 源码剖析(侯捷先生译著)

    8.3.3 stream iterators (istream_iterator, ostream_iterator) 442 8.4 function adapters 448 8.4.1 对传回值进行逻辑否定:not1, not2 450 8.4.2 对参数进行系结(绑定):bind1st, bind2nd 451 8.4.3 用于...

    Istream.tlb

    传说中的ISTREAM.TLB 这个可是找了好久才找到的呢

    c++ cin 作为while条件(详解)

    本文一切测试在windows clion中进行 在clion中,ctrl +z并不是文件结束符 ...在理解cin功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区

    C++中cin的用法详细

    在理解cin功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在cin的缓冲

    istream头文件(in Dev-cpp)

    c++文件输入类

    STL源码剖析.pdg

    8.3.3 stream iterators (istream_iterator, ostream_iterator) 442 8.4 function adapters 448 8.4.1 对传回值进行逻辑否定:not1, not2 450 8.4.2 对参数进行系结(绑定):bind1st, bind2nd 451 8.4.3 用于...

    IStream用于图像加载与显示

    将IPLImage显示于MFC窗口,稍加修改可以显示二维数组图像

    C语言头文件 ISTREAM

    C语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言头文件 ISTREAMC语言...

    VC GDI+ 窗口截图内存BMP转JPG,压缩、JPG再转IStream流,IStream流再转 BYTE

    VC GDI+ 窗口截图内存BMP转JPG,压缩、JPG再转IStream流,IStream流再转 BYTE 上体见 http://blog.csdn.net/q610098308/article/details/78181933

    C++中与输入相关的istream类成员函数简介

    从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值(真),否则为0(假)。 [例] 逐个读入一行字符,将其中的非空格字符输出。 #include using namespace std; int main( ) { char c; while(!...

    GDI+ 函数封装 IStream.rar

    VB6 GDI+ 实现内存(Stream)压缩/解压缩 JPG 图像图像,保存为Isteam、Byte()所需要的封装函数类

    libb64.zip - 用于Base64编码、解码的程序

    一个用于Base64编码、解码的程序, int encode(char value_in); int encode(const char* code_in, const int length_in, char* plaintext_out...void encode(std::istream& istream_in, std::ostream& ostream_in);

Global site tag (gtag.js) - Google Analytics