新手学习C++ primer plus 遇到的问题,高手指教。。

i诙谐 2011-10-16 05:21:20
#include<iostream>
#include<string>
using namespace std;
const int Max=30;
struct car
{
string make;
int year_made;
};

void main()
{
int num_car;int i=0;
cout<<" How many cars do you wish to catolog?____\b\b";
cin>>num_car;
car *c=new car [num_car];
for(i=0;i<num_car;i++)
{
cout<<"Car #"<<(i+1)<<":"<<endl;
cout<<"Please enter the make:";
getline(cin,c[i].make); //// 问题在这行
//整行输入存在错误。。要怎样修改才行a ?
//char make[]我也试过,用cin.get(c[i].make,30).get()等都不行,

cout<<"Please enter the year made:";
cin>>c[i].year_made;//cin.get(c[i].year_made,Max);
}
////////
cout<<"\n\aHere is your collection:"<<endl;
for(i=0;i<num_car;i++)
{
cout<<c[i].year_made<<" "<<c[i].make<<endl;
}
delete []c;
/////////

}
...全文
164 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bizhu12 2011-10-18
  • 打赏
  • 举报
回复
cin.get();
getline(cin,c[i].make);
也就是在你说的错误的拿行前加cin.get();因为前面输入num_car时有个回车符在缓存中,当执行到getline()时就接受了换行符结束,所以输入的内容没有存入make里,下面还有错..照着这样慢慢修改吧..
i诙谐 2011-10-16
  • 打赏
  • 举报
回复
make是生产商的名字,我用string来储存的。
诶呦 2011-10-16
  • 打赏
  • 举报
回复
你的make指什么为啥要用string类型

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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