📄 carstruct.cpp
字号:
#include <iostream>
#include <string>
using namespace std;
struct carstrcut
{
string name;
int yearmade;
};
int main()
{
int carmaker;
cout<<"How many cars do you want to catalog:";
cin>>carmaker;
while(cin.get()!='\n');//特别注意,这一句的意思是删除cin输入遗留在字符队列的回车符,必须添加,否则程序会异常
carstrcut * cars=new carstrcut[carmaker];
for(int i=0;i<carmaker;i++)
{
char ch[20];
cout<<"# car "<<i+1<<endl;
cout<<"Please enter the make:";
cin.getline(ch,20);
cars[i].name=ch;
// getline(cin,cars[i].name);
//特别注意cin和getline结合使用时可能出现的问题,如果上面的代码不借助char数组,直接使用getline(cin,cars[i].name)会出现一个问题,
//要求输入cars[i].name时,必须输入两次回车键才能进入cars[i].yearmade的输入,这是因为string字符串不以'\0'结尾,getline读取一行后会
//丢掉字符队列中的回车键,而下面的cin输入又是以回车键为结尾,意思就是cin碰到回车键,才知道上面的输出完成,我可以开始输入了,但是字
//符队列中的回车键又被getline删除了,所以只能人为的再输入一个回车键,才能正常使程序运行到cin输入。
cout<<"Please enter the year made:";
cin>>cars[i].yearmade;
while(cin.get()!='\n');//特别注意,这一句的意思是删除cin输入遗留在字符队列的回车符,必须添加,否则程序会异常
}
cout<<"Here is your collection:"<<endl;
for(int j=0;j<carmaker;j++)
{
cout<<cars[j].yearmade<<" ";
cout<<cars[j].name<<endl;
}
delete [] cars;
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -