Pode uma variável ifstream ser uma variável global?
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?
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