【问题标题】:How do I point to an input stream?如何指向输入流?
【发布时间】:2015-07-29 12:02:31
【问题描述】:

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

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 流到 out。

任何帮助将不胜感激。

【问题讨论】:

  • 天哪,好尴尬,我好像忘记在工作目录中包含文件“text.txt”了。一些错误检查会走得很远,我的错。
  • 该代码无法编译。

标签: c++ pointers iostream ifstream cin


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多