我如何指向输入流?

时间:2015-05-18 05:08:19

标签: c++ pointers iostream ifstream cin

我试图根据用户的决定使用指针指向我想要的输入流。这是我到目前为止所得到的。

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流出来。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

一个问题是&#39; myStream&#39;是指向istream的指针,但在while循环中它被用作istream的实例。您需要使用指针来使代码正常工作。例如:

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