Può una variabile ifstream essere una variabile globale?
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?
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