如何指向输入流?

How do I point to an input stream?

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

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 流向输出。

如有任何帮助,我们将不胜感激。

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

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