2015-05-18 48 views
0

我試圖使用一個指針指向我想要的輸入流取決於用戶的決定。這是迄今爲止的事情。如何指向輸入流?

string fileName = "test.txt"; 
ifsteam = myFile; 
myFile.open(fileName.c_str(), ifstream::in); 
istream * myStream;  
if (file_mode) { 
    myStream = &myFile; 
} else { 
    myStream = &cin; 
} 
string out; 
while (myStream >> out) { 
    cout << out << endl; 
} 

問題似乎是什麼都沒有從myStream流出。

任何幫助將不勝感激。

+0

哦,親愛的,有多麼尷尬,似乎我忘了在工作目錄中包含文件「text.txt」。 一些錯誤檢查會走得很遠,我的不好。 – Tristus

+0

該代碼不能編譯。 – Galik

回答

1

一個問題是'myStream'是一個指向istream的指針,但在while循環中它被用作istream的一個實例。您需要尊重指針以使代碼正常工作。例如:

while (*myStream >> out) { 
    cout << out << endl; 
}