关于getline()的问题

lhw7791086 2014-03-07 06:48:30
代码如下,主要想实现输入一个字符串接着输入一个整数,但是运行输入字符串后,光标不动,需要再输一点东西(随便什么)才能继续运行,不知道哪里出错了?



#include <iostream>
#include <string>
using namespace std;

struct car
{
string name;
int year;
};
void main()
{
car* cr = new car[1];
string sr;

cout<<"Names:";
getline(cin,cr[0].name);

cout<<"Year:";
cin>>cr[0].year;

cout<<cr[0].name<<" "<<cr[0].year<<endl;

cin.get();
cin.get();
}
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2014-03-10
  • 打赏
  • 举报
回复
这个或许是你的编译器问题,你用的是什么编译器啊?我在VS2012中运行后,输入name后回车,year就直接出现了
而在VC++6.0(完整绿色版)中运行后就出现了你说的状况,
我试了试,在VC6.0中getline右击转到定义或参考就会这样——
点击是以后就这样——
而在VS2012中则直接就转到定义或声明了,具体为啥真不知道,或许是VC6.0这样的编译器比较落后,有些东西不支持吧
赵4老师 2014-03-10
  • 打赏
  • 举报
回复
cout<<"Names:";cout.flush(); getline(cin,cr[0].name); cout<<"Year:";cout.flush(); cin>>cr[0].year;
lhw7791086 2014-03-10
  • 打赏
  • 举报
回复
是输入完name后:光标跳到下一行,但是"year:"这个却没显示,要再按一次回车才会显示出来
lhw7791086 2014-03-10
  • 打赏
  • 举报
回复
说错了,是输入完name后:光标跳到下一行,但是"year:"这个却没显示,要再按一次回车才会显示出来
lhw7791086 2014-03-10
  • 打赏
  • 举报
回复
输入完name后没反应,光标跳到下一行,但此时已经给name赋值了,再按一次回车才会把输入的name显示出来,后面正常
百曉生 2014-03-08
  • 打赏
  • 举报
回复
引用 3 楼 haitian218337 的回复:
我想问下,这是什么编译器(或者开发环境)?GCC还是别的?一直很想要。能给我发一份安装包么?我是Windows XP环境。win7的也行。
你问的是lz还是其他人啊?
海天ss 2014-03-08
  • 打赏
  • 举报
回复
我想问下,这是什么编译器(或者开发环境)?GCC还是别的?一直很想要。能给我发一份安装包么?我是Windows XP环境。win7的也行。
指针从不野 2014-03-07
  • 打赏
  • 举报
回复
问题没有描述清楚
百曉生 2014-03-07
  • 打赏
  • 举报
回复
引用 楼主 lhw7791086 的回复:
需要再输一点东西(随便什么)才能继续运行,

lz什么意思?
“再输入一点东西”???

我运行后,先显示 Names:
输入 zhangsan 后,回车
显示出 Year:
再输入2014后,再回车,得到这个结果——

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧