Pregunta

// stream from file.
ifstream file;

int main (int argc, char * argv[]) {

// get argument passed from command line
// This is file name
if (argc != 2 ) {
    cout << "use:  ./executable <filename>";

}else {
    //cout << "You are using filename: " << argv[1];

    // start the file stream
    file (argv[1]);
}

¿Hay alguna razón por la file(argv[1]) estaría dando un error? ¿Puedo tener un ifstream como una variable global?

¿Fue útil?

Solución

Usted está tratando de llamar operador ifstream del () (que no existe), cuando debería estar usando file.open(argv[1]) .

Además de eso, no hay nada ilegal en tener un ifstream global.

Otros consejos

Puede tener la ifstream como una variable global (si esto es bueno estilo es una cuestión diferente).

El problema parece ser que usted está tratando de utilizar el constructor: file(argv[1])

La variable global que ya se construiría (utilizando el constructor por defecto) en este punto, y en su lugar que tenga que utilizar el método open.

file.open( argv[1] );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top