如何指向输入流?
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;
}
我试图根据用户的决定使用指针指向我想要的输入流。这是我到目前为止得到的。
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;
}