Я пытаюсь прочитать глобальный 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;
}
Я получаю следующий код ошибки: "запрос члена getline
в fp
, который имеет неклассовый тип `std::istream*'. Может ли кто-нибудь сказать мне, в чем ошибка, и есть ли лучший способ ее решить? Я попробовал getline(fp, line), но там тоже было больше ошибок.
std::getline
, а неstd::istream::getline
. - person chris   schedule 03.10.2013.
!=->
, аналогичноstd::getline(fp, line)
!=std::getline(*fp, line)
. - person WhozCraig   schedule 03.10.2013fp
. Вы можете просто использовать ссылку как:auto & fp = argc==2? file : cin;
. Теперьfp
является ссылкой. - person Nawaz   schedule 03.10.2013