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?

War es hilfreich?

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
scroll top