📄 readfromfile.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 + -