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

📄 readfromfile.cpp

📁 我学习C++ Primer Plus过程中写下的课后作业的编程代码
💻 CPP
字号:
//第六章 6.编写一个程序,记录捐助给“维护合法权利团体”的钱。该程序要求用户输入捐献者数目,
//然后要求用户输入每一个捐献者的姓名和款项。这些信息被储存在一个动态分配的结构数组中。每个
//结构有两个成员:用来存储姓名的字符数组(或string对象)和用来存储款项的double成员。读取所有
//的数据后,程序将显示所有捐款超过10000的捐款者的姓名及其捐款数额。该列表前应包含一个标题,
//指出下面的捐款者是重要捐款人(Grand Patrons)。然后,程序将列出其他的捐款者,该列表要以
//Patrons开关。如果某种类别没有捐款者,则程序将打印单词“none”。该程序只显示这两种类别,
//而不进行排序。
//9.完成编程练习6,但从文件中读取所需的信息。该文件的第一项应为捐款人数,
//余下的内容应为成对的行。在每一对中,第一行为捐款人姓名,第二行为捐款数额。

#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
const int MAX=60;

struct Patrons
{
	std::string name;
	double money;	
};

int main()
{
	using namespace std;
	int n;
	int sign=0;			//看看是否须要输出none
    char filename[MAX];
	ifstream inFile;
	cout<<"请输入文件名:";
	cin.getline(filename,MAX);
	inFile.open(filename);
	if(!inFile.is_open())
	{
		cout<<"无法打开文件:"<<filename<<endl;
		cout<<"Program terminating."<<endl;
		exit(EXIT_FAILURE);
	}
	inFile>>n;
	Patrons *n_Patrons = new Patrons[n];
	for( int i=0; i<n; i++)           //读取捐献信息到n_Patrons数组
	{
		inFile.get();
		getline(inFile,n_Patrons[i].name);
		inFile>>n_Patrons[i].money;
	}
	inFile.close();			//关闭文件
	
	//Grand Patrons
	cout<<endl<<endl<<"Grand Patrons: "<<endl<<endl;
	for( i=0; i<n; i++)			
	{
		if(n_Patrons[i].money>10000)
		{
			cout<<n_Patrons[i].name<<"捐款:"<<n_Patrons[i].money<<endl;
			sign++;
		}
	}
	if(0==sign)
		cout<<"none"<<endl;

	sign=0;					//重新设置标志

	//Patrons
	cout<<"Patrons: "<<endl<<endl;
	for( i=0; i<n; i++)
	{
		if(n_Patrons[i].money<=10000)
		{
			cout<<n_Patrons[i].name<<"捐款: "<<n_Patrons[i].money<<endl;
			sign++;
		}
	}
	if(0==sign)
		cout<<"none"<<endl;
	return 0;
}
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -