飛飛(五十)输入输出运算符重载(cerr的用法)
来源:互联网 发布:纹理合成算法 编辑:程序博客网 时间:2024/06/04 19:19
/**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="" />
0 0
- 飛飛(五十)输入输出运算符重载(cerr的用法)
- C++输入输出运算符重载(“>>”“<<”)
- C++重载<<和>>(输入输出运算符)
- C++输入输出运算符重载(“>>”“<<”)
- C++输入输出运算符重载(“>>”“<<”)
- 输入输出运算符的重载
- 输入输出运算符重载
- 重载输入输出运算符
- 输入输出运算符重载
- 输入输出运算符重载
- 输入输出运算符重载
- 重载输入输出运算符引用的理解
- 【C++】输入输出运算符的重载
- 输入输出运算符重载( Overloading the I/O operators)
- C++重载输入输出运算符
- C++输入输出运算符重载
- C++输入输出运算符重载
- C++输入输出运算符重载
- PAT 甲级 1027 Colors in Mars
- fizzbuzz的机器学习解法
- 2016年最新黑马安卓第74期就业班不加密视频教程
- HDU 1074 Doing Homework(状压DP)
- sdau三 1018
- 飛飛(五十)输入输出运算符重载(cerr的用法)
- iOS编程(1)TabBarController
- RxJava之defer操作符
- 特征工程
- TR069协议详解
- 【bzoj4530】【BJOI2014】【大融合】【dfs序+线段树合并+并查集】
- 【SWUSTOJ】1003: 你来做裁判(排序)
- ubuntu 命令记录
- CodeForces 24A Ring road(dfs)