C++ Primer Plus第六版编程练习6.9解答
2015-03-09 23:40
423 查看
//思路:在main()中创建一个动态数组,通过函数调用的方式 //把文件中的内容读取进该动态数组,最后把捐款数是否超过 //10000的捐款人分开显示 #include <iostream> #include <fstream> //for ifstream #include <cstdlib> //for exit() using namespace std; struct member { char name[30]; double money; }; void ReadFile(member *p); ifstream inFile; //定义为全局变量,因为在main()与ReadFile()函数中都有用到 int main() { inFile.open("member.txt"); //打开文件 if(!inFile.is_open()) { cout<<"Could not open the file.\nProgram terminating.\n"; exit(EXIT_FAILURE); } int number; inFile>>number; //读取文件的第一项,即捐款人数 member *donor=new member[number]; inFile.get(); ReadFile(donor); cout<<endl; cout<<"Grand Patrons:\n"; int i,count=0; member *q=donor; //避免直接移动donor指针 for(i=0; i<number; i++,q++) { if(q->money>10000) { cout<<q->name<<": "<<q->money<<endl; count++; } } if(count==0) cout<<"none\n"; q=donor; //q重新指向第一个捐款人 cout<<endl; cout<<"Partrons:\n"; for(i=0,count=0; i<number; i++,q++) { if(q->money<=10000) { cout<<q->name<<": "<<q->money<<endl; count++; } } if(count==0) cout<<"none\n"; cout<<endl; delete [] donor; //释放用new创建的动态数组 cin.get(); cin.get(); return 0; } void ReadFile(member *p) { while(inFile.good()) { inFile.getline(p->name,30); inFile>>p->money; inFile.get(); //读取换行符,一定不要漏了!!否则后面的数据会不匹配!! p++; } if(inFile.eof()) cout<<"End of file reached.\n"; else if(inFile.fail()) cout<<"Input terminated by data mismatch.\n"; else cout<<"Input terminated for unknown reason.\n"; inFile.close(); //关闭文件 }
相关文章推荐
- C++ Primer Plus第六版编程练习11.4解答
- C++ Primer Plus第六版编程练习11.5解答
- C++ Primer Plus第六版编程练习10.4解答
- C++ Primer Plus第六版编程练习10.3解答
- C++ Primer Plus第六版编程练习8.2解答
- C++ Primer Plus第六版编程练习10.6解答
- C++ Primer Plus第六版编程练习12.2解答
- C++ Primer Plus第六版编程练习11.1解答
- C++ Primer Plus第六版编程练习12.4解答
- C++ Primer Plus第六版编程练习9.1解答
- C++ Primer Plus第六版编程练习11.7解答
- C++ Primer Plus第六版编程练习12.5解答
- C++ Primer Plus第六版编程练习8.6解答
- C++ Primer Plus第六版编程练习6.7解答
- C++primer plus第六版课后编程练习答案6.9
- C++ Primer Plus第六版编程练习11.2解答
- C++ Primer Plus第六版编程练习12.6解答
- C++ Primer Plus第六版编程练习9.4解答
- C++ Primer Plus第六版编程练习10.8解答
- C++ Primer Plus第六版编程练习10.5解答