1. 程式人生 > >C++ 流輸入輸出運算子過載

C++ 流輸入輸出運算子過載

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

class Complex
{
public:
    Complex(double r=0, double i=0):real(r), image(i) {};
	friend ostream& operator<< (ostream &os, const Complex& c);
    friend istream& operator>> (istream &is, Complex& c);
private:
    double real;
	double imag;
};

ostream& operator<< (ostream& os, const Complex& c)
{
	os << c.real << "+" << c.imag << "i";
	return os;
}

istream& operator>> (istream& is, Complex& c)
{
	string s;
	is >> s;
	int pos = s.fine( "+", 0 );
	string sTmp = s.substr( 0, pos );
	c.real = atof( sTmp.c_str() );
	sTmp = s.substr( pos+1, s.length()-pos-2 );
	c.imag = atof( sTmp.c_str );
	return is;
}

int main()
{
	Complex c;
	int n;
	cin >> c >> n;
	cout << c << ", " << n;
	
	return 0;
}


相關推薦

C++ 輸入輸出運算子過載

#include <iostream> #include <string> #include <cstdlib> using namespace std; cl

C++實現輸入輸出運算子過載、友元函式和成員函式實現複數類Complex

今天答應幫朋友做一個C++題目,頗費了一番周折,終於還是寫出來了,讓很久沒敲程式碼的我反省了一下,也回憶了以前學過的知識。 題目要求如下: 一、按下列要求編制複數類,並除錯通過: 1)  基本的建構函式; 2)  成員運算子+、-實現複數的加減運算; 3)  友元運算子+

C++ 輸入輸出運算子過載 感想

在C++中,經常會對輸入輸出運算子進行過載,而在過載的時候用到了友元(Friends)和引用返回(Returning References),這裡對為什麼會這麼用發表一些思考。 比如,下面的類是一個簡單的Student類,其中過載了<<和>&

c++中輸入輸出為什麼必須過載為友元

若是將輸入輸出流過載為類的成員函式,形式為: cout.operator<<(Complex &c1); 因為cout類的opetator<<函式的原始碼無法改變,所以無法過載為類的成員函式; 操作符過載過程中,需要用的類的成員變數,所以只是

C++ 友元函式的使用&過載輸入輸出運算子

友元函式 形式 friend 型別名 友元函式名(形參表); 然後在類體外對友元函式進行定義,定義的格式和普通函式相同,但可以通過物件作為引數直接訪問物件的私有成員 說明如下 1)必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函

C++輸入輸出運算子過載

C++中的流插入運算子“>>”和流輸出運算子“<<”在C++類庫中提供的,所有的C++編譯系統都會在提供輸入流istream和輸出流ostream,cin、cout是分別是istream類和ostream類的物件,在類庫的標頭檔案中已經對

C++的輸入輸出

spa har void .get zha fail end cout 輸入輸出 1. cin的參數不匹配時,會返回false。使用clear()成員函數重置錯誤位,sync()成員函數清空輸入流。 1 #include<iostream> 2 int c

關於模板類中輸入輸出運算子過載

    當輸入輸出運算子在標頭檔案中寫時,如果沒有#include <iostream>和using namespace std;程式將會有100多個bug;當輸入輸出運算子過載為模板類的友元函式時,如果只是在類體中寫為ostream& operator&

C++的輸入輸出C的scanf,printf的區別在哪裡?

 我們經常用到的輸入和輸出,都是以終端為物件的,即從鍵盤輸入資料,執行結果輸出到顯示器螢幕上。從作業系統的角度看,每一個與主機相連的輸入輸出裝置都被看作一個檔案。除了以終端為物件進行輸入和輸出外,還經常用磁碟(光碟)作為輸入輸出物件,磁碟檔案既可以作為輸入檔案,也可以作

C# System.IO 檔案輸入輸出

一、讀寫文字檔案 可以用fileStream來讀寫文字檔案,但是FileStream是通過位元組形式來讀寫資料的,要把位元組資料轉換為文字,要自己處理編碼轉換。 對於文字檔案的讀寫,通常用 StreamReader類和 StreamWriter類更方便。其底層是通過File

C++檔案輸入輸出+輸入輸出二進位制檔案(自定義物件)

檔案流類和檔案流物件檔案流是以外存檔案為輸入輸出物件的資料流。輸出檔案流   記憶體->外存輸入檔案流   外存->記憶體檔案流類流的名稱 流的作用 ifstream類 從istream類派生的,用來支援從磁碟檔案的輸入 ofstream類 從ostream

過載輸入輸出運算子引用的理解

#include <iostream.h> class coord{ int x,y; public: coord(int i=0,int j=0) { x=i; y=j; } friend ostream& operator<&

C++格式化輸入輸出

對齊 res 寬度 put 小寫 實現 lower style 輸出數據 要實現格式化輸入輸出,程序需要包含 iostreams 標準標頭 <iomanip> 以定義幾個各自采用單個參數的操控器。 備註: 其中每個操控器都返回重載 basic_istre

io輸入輸出字符字節流

ack bds dhx gae woe sid bvs new dtc %E9%97%AE%E4%B8%80%E4%B8%8B%E4%BA%A7%E5%93%81%E4%B8%8A%E7%BA%BF%E5%A4%9A%E6%B8%A0%E9%81%93%E6%89%93%E

java輸入輸出

lin col 字節碼 內存 NPU puts 情況 oid odi java讀取txt文件內容。可以作如下理解: 首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網絡了。接下來可以開始打電話了。

freopen - C/C++檔案輸入輸出利器

freopen以前經常使用,比較方便,可以當作模板,在中間替換為自己的程式碼即可使用。 [cpp] view plain copy #incl

java io 輸入輸出 大牛經典總結(轉載)

轉載出處:https://www.cnblogs.com/shaohz2014/p/3652548.html  java io 流 輸入輸出 大牛經典總結       在軟體開發中,資料流和資料庫操作佔據了一個很重要的位置,所以,熟

C語言——輸入輸出

資料的輸入輸出 輸入:從輸入裝置(如鍵盤,磁碟,光碟,掃描器等)向計算機輸入資料。 輸出:從計算機向輸出裝置(如顯示器,印表機等)輸出資料。 (一)用printf函式輸出資料 printf函式是格式輸出函式。程式設計人員必須指定輸出資料的格式,即根據資料的不同型別指定不同的格式。 p

C++ 略坑的運算子過載練習

補充程式碼,使程式按要求輸出    #include <iostream> using namespace std; template <class T> class Add{ public: // 在此處補充你的程式碼 }; int mai

C++】關於c++的輸入輸出

這應該是我們寫的第一個c++程式碼: #include <iostream> using namespace std;//展開c++標準庫 int main() { cout << "hello world" << std::endl; retu