Hola, buen día, tengo una duda que agradecería me pudiesen ayudar a resolver en C++. Es la siguiente:
Tengo la siguiente funcion:
Nota: Lo que esta en parametros con corchetes, no lo tengo, es lo que quiero poner
void getArgs(int argc, char **argv, [istream dataIn])
{
static ifstream dataStream; // data file stream
static ifstream queryStream; // query file stream
if (argc <= 1) { // no arguments
cerr << "Usage:\n\n"
<< " blablabla"
}
int i = 1;
while (i < argc) { // read arguments
if (!strcmp(argv[i], "-df")) { // -df option
dataStream.open(argv[++i], ios::in);// open data file
if (!dataStream) {
cerr << "Cannot open data file\n";
exit(1);
}
dataIn = &dataStream; // make this the data stream
'
}
i++;
}
}
Con esa función, si la tengo dentro del archivo donde esta el main, y tengo declarada dataIn como global así:
istream* dataIn = NULL;
luego mando llamar a la funcion
getArgs(argc, argv);
Eso no me trae ningun problema.
Pero, lo que quiero, es poner esa función en otro archivo, y mandarlo llamar desde el archivo con main. Entonces, para esto, quiero mandarle dataIn, de tal forma que yo llamara a la funcion así:
getArgs(argc, argv,dataIn);
Entonces que el archivo abierto estuviera en dataIn y de ahi ya lo pudiera leer paso por paso.
Pero no tengo idea de como hacer esto, creo que es con punteros, pero no se como irian los punteros.
Gracias de antemano, que tengan buen día.