这段程序的cin>>str怎么不执行? vc6.0
代码如下:
- C/C++ code
#include "stdafx.h"#include <utility>#include <map>#include <string>#include <iostream>using namespace std;int main(int argc, char* argv[]){ multimap<string,string> mlt_mp; string auther_name=""; string book_name=""; string str=""; cout<<"input a author:"; while(cin>>auther_name) { cout<<"input a book name:"; cin>>book_name; mlt_mp.insert(make_pair(auther_name,book_name)); cout<<"input a author:"; } cout<<"input a auther who you are search:"; cin>>str; pair<multimap<string,string>::iterator,multimap<string,string>::iterator > pos=mlt_mp.equal_range(str); while(pos.first!=pos.second) { cout<<"book name:"<<pos.first->second<<endl; pos.first++; } return 0;}就是使用multimap查找元素
cout<<"input a auther who you are search:";
cin>>str;
这个cin直接就过去了 没有让我输入字符串 很奇怪
[解决办法]
- C/C++ code
fflush(stdin);//加句这试试,楼主cout<<"input a auther who you are search:"; cin>>str;
[解决办法]
cin.clear();
cin.sync();
cout<<"input a auther who you are search:";
cin>>str;
[解决办法]
要清空缓冲区,比如你前边cin>>book_name;的时候先输入了后敲回车,但是cin只会从缓冲区读回车以前的读到book_name里边,但是回车还在缓冲区,那么下次cin就会出错。。。