关于文件读取的一点小问题
二胖小哥 2014-04-12 03:25:42 #include <iostream>
#include <fstream>
#include <cstdlib>
struct member
{
char name[20];
double donation;
};
int main()
{
using namespace std;
int num,count1=0,count2=0;
ifstream fin;
char file[20];
cout<<"Enter name of data file: ";
cin.getline(file,20);
fin.open(file);
if(!fin.is_open())
{
cout<<"Could not open the file-"<<file<<endl;
cout<<"Program terminating.\n";
exit(EXIT_FAILURE);
}
fin>>num;
fin.get();
member *pd=new member[num];
for(int i=0;i<num;i++)
{
fin.getline(pd[i].name,20);
fin>>pd[i].donation;
fin.get();
}
cout<<"Grand Patrons:\n";
for(int i=0;i<num;i++)
if(pd[i].donation>=10000)
{
cout<<pd[i].name<<"\n"<<pd[i].donation<<endl;
count1++;
}
if(count1==0)
cout<<"none\n";
cout<<"Patrons:\n";
for(int i=0;i<num;i++)
if(pd[i].donation<10000)
{
cout<<pd[i].name<<"\n"<<pd[i].donation<<endl;
count2++;
}
if(count2==0)
cout<<"none\n";
delete [] pd;
cin.get();
return 0;
}
文件里面是这样的
4
wang
12121
liu
230000
zhang
2222
程序的目的是找出结构体中大于20000的信息,并分成两种输出。
我不明白的是红色字体的地方,后面那个cin.get();是干啥的?为什么字符型的时候就不用了呢?整型的时候也用cin.getline();可以不?