Kann eine ifstream Variable eine globale Variable sein?
Frage
// 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]);
}
Gibt es einen Grund, warum file(argv[1])
wäre ein Irrtum zu geben? Kann ich eine ifstream als globale Variable haben?
Lösung
Sie versuchen, die ifstream
des ()
Operator zu nennen (die es nicht gibt), wenn Sie file.open(argv[1])
.
Außerdem gibt es nichts illegal über eine globale ifstream
haben.
Andere Tipps
Sie können die ifstream als globale Variable haben (ob es sich um guten Stil ist eine andere Frage).
Das Problem scheint zu sein, dass Sie versuchen, den Konstruktor zu verwenden: file(argv[1])
Die globale Variable würde bereits aufgebaut sein (der Standard-Konstruktor) an diesem Punkt, und Sie werden stattdessen die open
Methode verwenden müssen.
file.open( argv[1] );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow