Reputation: 901
// 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]);
}
Is there any reason why file(argv[1])
would be giving an error? Can I have a ifstream as a global variable?
Upvotes: 3
Views: 6212
Reputation: 258358
You're trying to call the ifstream
's ()
operator (which doesn't exist), when you should be using file.open(argv[1])
.
Besides that, there's nothing illegal about having a global ifstream
.
Upvotes: 6
Reputation: 4805
You can have the ifstream as a global variable (whether this is good style is a different question).
The problem seems to be that you're attempting to use the constructor: file(argv[1])
The global variable would already be constructed (using the default constructor) at this point, and you will instead need to use the open
method.
file.open( argv[1] );
Upvotes: 2