首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新人求罩:for循环中getline函数解决办法

2013-03-26 
新人求罩:for循环中getline函数今天看victor模板、想通过for循环赋值时出现一个问题。为什么只有第一次循环、

新人求罩:for循环中getline函数
今天看victor模板、想通过for循环赋值时出现一个问题。为什么只有第一次循环、输入流字符存储到了string对象中,而余下的循环虽然进入到getline函数中、为什么不可以输入字符串?鄙人菜鸟中的菜鸟新人求罩:for循环中getline函数解决办法、诚求大神解释。
#include <iostream>
#include <string>
#include <vector>

const int NUM=5;
int main()
{
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
vector<int> rating(NUM);
vector<string> titles(NUM);
for(int i=0;i<NUM;i++)
{
cout<<"enter titles #"<<i+1<<":";
getline(cin,titles[i]);
cout<<"enter your rating[i]"<<endl;
cin>>rating[i];
//cin.get();
}
cout<<"thank you"<<endl;
for(int i=0;i<NUM;i++)
{
cout<<rating[i]<<"\t"<<titles[i]<<endl;
}
return 0;
} vector
[解决办法]

//cin.get();

将注释去掉就好了.因为你在向rating[i]中输入数据的时候是以\n结尾的.而getline接收到\n就返回了,所以不会接收到你输入的数据.

[解决办法]
cin 很智能,会根据你的输入数据的类型自动判断的. c++ primer plus是本基础的书.
[解决办法]
c++primer上关于这个有个课后习题,可以看看。

热点排行