飛飛(五十)输入输出运算符重载(cerr的用法)
2016-05-31 08:28
519 查看
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作 者:李飞 *完成日期:2016年 5月 31日 *版 本 号:1.0 * *问题描述:输入输出运算符重载(cerr的用法) *输入描述: *程序输出: */ #include <iostream> #include<Cmath> using namespace std; class CFraction { private: int nume; int deno; public: CFraction(int nu=0,int de=1):nume(nu),deno(de){} void simplify(); friend istream &operator >>(istream &in,CFraction &x); friend ostream &operator <<(ostream &out,CFraction x); CFraction operator +(const CFraction &c); CFraction operator -(const CFraction &c); }; void CFraction::simplify() { int n,m,r; n=fabs(deno); m=fabs(nume); while(r=m%n) { m=n; n=r; } deno/=n; nume/=n; if(deno<0) { deno=-deno; nume=-nume; } } istream &operator>>(istream &in,CFraction &x) { char ch; while(1) { cin>>x.nume>>ch>>x.deno; if(x.deno==0) cerr<<"分母为零,请重新输入!"; else if(ch!='/') cerr<<"格式错误,请重新输入!"; else break; } return cin; } ostream &operator<<(ostream &out ,CFraction x) { if(x.deno==x.nume) { cout<<1<<endl; } else if(x.nume==0){cout<<0;} else cout <<x.nume<<'/'<<x.deno; return cout; } CFraction CFraction::operator+(const CFraction &c) { CFraction t; t.nume=nume*c.deno+c.nume*deno; t.deno=deno*c.deno; t.simplify(); return t; } CFraction CFraction::operator-(const CFraction &c) { CFraction t; t.nume=nume*c.deno-c.nume*deno; t.deno=deno*c.deno; t.simplify(); return t; } int main() { CFraction x,y,s; cout<<"请输入x: "; cin>>x; cout <<"请输入y: "; cin>>y; s=x+y; cout<<s<<endl; s=x-y; cout<<s<<endl; return 0; } <img src="http://img.blog.csdn.net/20160531082650348?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性