2013-07-19 38 views
2

我想使用istream和ostream作爲我的函數使用並幫助我工作的參數(讀取文件,並在屏幕上顯示內容)。 我知道如何與istream的做到這一點:如何傳遞一個ostream並使用cout在函數的屏幕上顯示?

std::ifstream myfile(...); 

void foo(myfile); 

void readFoo(std::istream &stream) 
{ 
    int x, y; 
    stream >> x >> y; //suppose my file contains many rows of 2 numbers. 
    //store the x and y to somewhere 
} 

void writeFoo(std::ostream &output) 
{ 
??? 
} 

而且我應該傳遞給我的writeFoo什麼對象()?

UPDATE: 這裏是更新,但我得到一個錯誤信息(不能從ostream的轉換爲ostream的*)

writeFoo(std::cout); 
writeFoo(sd::ostream &out) 
{ 
    out << somedata to display to the screen; 
} 
+0

如果你想要屏幕輸出,爲什麼要採取任意流? – chris

+0

假設我想堅持ostream和istream? – user1701840

+0

如果您想使用'cout',則不需要傳遞'ostream'。只需使用'cout'。 –

回答

4

你可以通過std::ostream派生的任何輸出流

例如:

writeFoo(std::cout); //write to stdout 

std::ofstream file("output.txt"); //open/create a file first 
writeFoo(file);  //write to output.txt 

希望有所幫助。

+0

THx!但是我得到了從ostream到ostream的錯誤轉換*錯誤 – user1701840

+1

@ user1701840:那麼您正在做其他事情。 – Nawaz

+0

請參閱我的更新 – user1701840

相關問題