C++ Primer Plus第六版编程练习6.9解答
来源:互联网 发布:吕中 奚美娟 知乎 编辑:程序博客网 时间:2024/05/19 13:14
//思路:在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(); //关闭文件}
0 0
- C++ Primer Plus第六版编程练习6.9解答
- C++ Primer Plus第六版编程练习6.7解答
- C++ Primer Plus第六版编程练习7.10解答
- C++ Primer Plus第六版编程练习8.2解答
- C++ Primer Plus第六版编程练习8.6解答
- C++ Primer Plus第六版编程练习9.1解答
- C++ Primer Plus第六版编程练习9.4解答
- C++ Primer Plus第六版编程练习10.3解答
- C++ Primer Plus第六版编程练习10.4解答
- C++ Primer Plus第六版编程练习10.5解答
- C++ Primer Plus第六版编程练习10.6解答
- C++ Primer Plus第六版编程练习10.8解答
- C++ Primer Plus第六版编程练习11.1解答
- C++ Primer Plus第六版编程练习11.2解答
- C++ Primer Plus第六版编程练习11.3解答
- C++ Primer Plus第六版编程练习11.4解答
- C++ Primer Plus第六版编程练习11.5解答
- C++ Primer Plus第六版编程练习11.6解答
- 学习shader之前必须知道的东西之计算机图形学(一)渲染管线
- C语言之结构体浅谈
- boost锁的概述
- IOS SEL (@selector) 原理及使用总结(一)
- 郭靖和黄蓉竟然是这样死的!---某些人最近看了柴静的《穹顶之下》后狂喷她,这些人可能就是本文中的甲乙丙丁
- C++ Primer Plus第六版编程练习6.9解答
- Ural1298 Knight 经典DFS
- 运行Android项目时,adb无法启动的原因
- eclipse平台的手机程序开发步骤整理
- hdu 2844 多重背包
- 【黑马程序员】关于NSString和NSDictionary遍历的几种方式
- Boost Thread 使用指南
- 黑马程序员--this和super关键字
- leetcode:Set Matrix Zeors 菜鸟解法