繁体   English   中英

使用getline错误读取全局istream *

[英]reading global istream* with getline error

我正在尝试使用以下代码读取全局istream *:

/*Global Declaration*/
istream* fp;

/* in main */
ifstream iFile;
if(argc == 2)
  //open file code
  fp = &file;
else
  fp = &cin;
readFile;

/*readFile*/
readFile(){
  string line;
  while(fp.getline(line))
    cout<<line<<endl;
}

我收到以下错误代码:“请求fp成员getline ,它是非类类型的“ std :: istream *”,任何人都可以告诉我错误是什么,以及是否有更好的解决方法我确实尝试过getline(fp,line),但那里也有更多错误。

您将fp声明为指针,但尝试将其用作实例。 您的readfile函数应如下所示:

void readFile()
{
    string line;
    while(std::getline(*fp, line)) // note the de-referencing of fp
    {
        cout<<line<<endl;
    }
}

(您在代码中还存在其他一些语法错误,我认为这只是拼写错误)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM