Domanda

// 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]);
}

C'è qualche motivo per cui file(argv[1]) avrebbe dato un errore? Posso avere un'ifstream come una variabile globale?

È stato utile?

Soluzione

Si sta cercando di chiamare operatore ifstream del () (che non esiste), quando si dovrebbe utilizzare file.open(argv[1]) .

Oltre a questo, non c'è niente di illegale di avere un ifstream globale.

Altri suggerimenti

Si può avere l'ifstream come una variabile globale (se questa è buono stile è una domanda diversa).

Il problema sembra essere che si sta tentando di utilizzare il costruttore: file(argv[1])

La variabile globale sarebbe già essere costruito (utilizzando il costruttore di default), a questo punto, e sarà invece necessario utilizzare il metodo open.

file.open( argv[1] );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top