一个小问题,请大家帮帮忙!
- C/C++ code
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ vector<int> ivec; int num; string str; while( cin >>num ) { ivec.push_back(num); } cin >>str; //为什么等不到输入str就结束了呢? cout <<str <<endl; for( int i = 0; i < ivec.size(); ++i ) cout <<ivec[i] <<" "; cout <<endl;}[解决办法]
- C/C++ code
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ vector<int> ivec; int num; string str; while( cin >>num ) { ivec.push_back(num); } cin.clear(); //将流置为有效状态 cin >>str; //为什么等不到输入str就结束了呢? cout <<str <<endl; for( int i = 0; i < ivec.size(); ++i ) cout <<ivec[i] <<" "; cout <<endl;}
[解决办法]
结束了?请问while循环怎么出来的啊?跳出条件是cin>>num错误?
[解决办法]
可能缓冲区里面之前有东西,cin就直接读出来了, cin.clear();就是清空缓冲区