posts - 24, comments - 11, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

string 类 的 getline

Posted on 2006-02-26 11:17 quite 阅读(5214) 评论(3)  编辑 收藏 引用 所属分类: 求助

//为什么结果少输出一条数据?是不是 getline()函数有什么问题?请指教,谢谢!(我用的是  visual c++ 6.0)
#include<iostream>
using namespace std;
#include<vector>
#include<string>
int main()
{
 int NUM;
 cout<<"input vetcor size NUM=";
 cin>>NUM ;

 vector<string >str_arr(NUM);

 for(int i=0;i<NUM;i++)
 {
  cout<<"enter the "<<i+1<<"   string:";
  getline(cin,str_arr[i]);
  //arr.push_back(x);
 }

 for(i=0;i<NUM;i++)
  cout<<str_arr[i]<<endl;

 cout<<endl<<endl;
 return 0;
}

Feedback

# re: string 类 的 getline  回复  更多评论   

2009-01-27 18:04 by
cin>>NUM ;
下面加fflush(stdin);
因为你输入NUM以后缓冲区中有个一个换行,而getline函数不忽略换行,如果你不清空,第一个string的内容始终都是换行符

# re: string 类 的 getline  回复  更多评论   

2009-07-21 09:29 by 捕手
fflush(stdion)行为不确定,不一定运行正确。
最好在cin >> NUM;后面加上cin.get();即可。

# re: string 类 的 getline  回复  更多评论   

2010-01-02 21:57 by ALLMYTEACHER
同意上面两位

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理