⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 carstruct.cpp

📁 C++ primer plus第五章编程练习的代码
💻 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 + -