C++primer plus第六版课后编程练习答案6.9
2015-11-26 16:17
477 查看
#include<iostream> #include<cctype> #include<cstdlib>//support for exit(),atoi() #include<string> #include<fstream>//文件I/O #include<sstream>//stringstream转换各种数据格式 using namespace std; struct donation{ <span style="white-space:pre"> </span>string name; <span style="white-space:pre"> </span>double money; }; void main()//从文件中读出捐款人 { ifstream fin; fin.open("1.txt");//打开文件 if(!fin.is_open()) { cout<<"Could not open the file."<<endl; cout<<"Program terminating."<<endl; exit(EXIT_FAILURE); } int n,i; int normal=0,special=0;//normal:普通捐款人的数目,special:重要捐款人(捐款超过10000)的数目 string num,money; getline(fin,num); /* n=atoi(num.c_str());//c中方法,将string转化为int if(errno==ERANGE) { cout<<"num可能由于过大或过小而不能完全存储"<<endl; } */ stringstream ss; ss<<num; ss>>n; // cout<<n<<endl; // if(!ss.good())//判断数据转换有没有出错 // { // cout<<"wrong"<<endl; // } donation *d=new donation ; donation *s=new donation ;//重要捐款人 donation *q=new donation ;//普通捐款人 for(i=0;i<n;i++) { getline(fin,d[i].name); getline(fin,money); // cout<<money<<endl; // ss.str("");//清空字符串 ss.clear();//清空结束的标志eof,和内容 ss<<money; ss>>d[i].money; // cout<<d[i].money<<endl; // if(!ss.good()) // { // cout<<"wrong"<<endl; // } if(d[i].money<10000) { q[normal]=d[i]; normal++; } else { s[special]=d[i]; special++; } } // cout<<normal<<endl // <<special<<endl; cout<<"重要捐款人"<<endl; if(0==special) cout<<"none"<<endl; else { for(i=0;i<special;i++) cout<<s[i].name<<endl; } cout<<"普通捐款人"<<endl; if(0==normal) cout<<"none"<<endl; else { for(i=0;i<normal;i++) cout<<q[i].name<<endl; } delete [] d;//释放堆空间 delete [] s; delete [] q; fin.close(); }
相关文章推荐
- C/C++——继承和派生
- C++primer plus第六版课后编程练习答案6.8
- C++primer plus第六版课后编程练习答案6.7
- 问题
- C++primer plus第六版课后编程练习答案6.6
- C++primer plus第六版课后编程练习答案6.5
- c++ primer 3 标准库类型
- C++primer plus第六版课后编程练习答案6.4
- c++11条件变量的使用,condition_variable
- C++primer plus第六版课后编程练习答案6.3
- code forces 4C Registration system (map 的简单用法)
- C++设计模式[十八]观察者模式
- C++primer plus第六版课后编程练习答案6.2
- C语言_分支结构和循环结构
- C++primer plus第六版课后编程练习答案6.1
- NOIP2015游记
- C++基类和派生类的赋值
- 程序猿的日常151126
- VC++的DLL应用(含Demo演示)
- C++primer plus第六版课后编程练习答案5.9