C++ Primer Plus(第五版)第五章编程练习题6(关于string难点哦)

来源:互联网 发布:女生鼠标推荐 知乎 编辑:程序博客网 时间:2024/04/30 07:26

//6.设计一个名为car的结构,用它存储下述有关汽车的信息:

//生产商(存储在字符数组或string对象中的字符串),生产年份(整数).

//编写一个程序,向用户询问有多少辆汽车.随后,程序new来创建一个

//由相应数量的car结构组成的动态数组.接下来,程序提示用户输入

//每辆车的生产商(可能由多个单词组成)和年份信息.请注意,这需要特别
//小心,因为它将交替读取数值和字符串.最后程序将显示每个结构的内容.

 

#include <iostream>
#include <string>

using namespace std;

 

struct car
{
   string make;       
   int year;
};

 

int main()
{
   int n=0;
   cout<<"您有多少辆车要收录?"<<endl;
   cin>>n;
   car *new_car= new car[n]; //用了new我竟然没用delete [] new_car; !!
   for(int i=0;i<n;i++)
   {
      cout<<"Car #"<<i+1<<":"<<endl;
      cout<<"请输入生产商:";
      cin.sync();                          
      getline(cin,new_car[i].make);        
      cout<<"请输入生产年份:";
      cin>>new_car[i].year;
   }

   cout<<"下面是您的收藏:"<<endl;
   for(int j=0;j<n;j++)
   {
      cout<<new_car[j].year<<"  "<<new_car[j].make<<endl;
   }
   
   cin.get();
   delete [] new_car;   //别忘了
   return 0;
}

 

运行结果:

 

您有多少辆车要收录?
2
Car #1:
请输入生产商:福 特

请输入生产年份:1985
Car #2:
请输入生产商:奔驰 A86

请输入生产年份:2007

下面是您的收藏:

1985  福 特

2007  奔驰 A86

press any key to continue

 

每次用string都会有这个问题:

输入一个字符串后得敲两次回车才提示下一个输入!是天生的缺陷还是另有巧用?




FROM:  http://blog.sina.com.cn/s/blog_4e6b6c2f010009u5.html

0 0
原创粉丝点击