Попробуйте вместо istream*
. Обратите внимание, однако, что вы должны немного изменить свой код. Используя указатели, вы должны сохранить область памяти объекта, на который вы указываете. Другими словами, переменная "inFile" не может быть там объявлена, так как она не будет существовать в другом месте. Код может быть:
istream* in;
ifStream inFile;
if(!strcmp(argv[1],"cin"))
{
in = &cin;
}
else
{
inFile.open(argv[1]);
in = &inFile;
}
// use *in
(Обратите внимание также на изменения в обработке строк. Я изменил их в качестве примера.)