Pergunta

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

Existe alguma razão para que file(argv[1]) estaria dando um erro? Posso ter um ifstream como uma variável global?

Foi útil?

Solução

Você está tentando chamar operador ifstream do () (que não existe), quando deveria estar usando file.open(argv[1]) .

Além disso, não há nada ilegal sobre ter um ifstream global.

Outras dicas

Você pode ter o ifstream como uma variável global (se isso é bom estilo é uma questão diferente).

O problema parece ser que você está tentando usar o construtor: file(argv[1])

A variável global já estaria construído (usando o construtor padrão), neste ponto, e em vez disso você vai precisar usar o método open.

file.open( argv[1] );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top