I would like to open a file and read a line from it. There will be only one line in the file so I don’t really need to worry about looping, although for future reference it would be nice to know how to read multiple lines.
int main(int argc, const char* argv[]) {
// argv[1] holds the file name from the command prompt
int number = 0; // number must be positive!
// create input file stream and open file
ifstream ifs;
ifs.open(argv[1]);
if (ifs == NULL) {
// Unable to open file
exit(1);
} else {
// file opened
// read file and get number
...?
// done using file, close it
ifs.close();
}
}
How would I do this? Also, am I handling the file open correctly in terms of successful open?
Thanks.
A couple of things:
You can read a number with the
>>stream extraction operator:ifs >> number.The standard library function getline will read a line from a file, if you want a full line of text.
To check if the file opened, just write
if (ifs)orif (!ifs). Leave out the== NULL.You don’t need to explicitly close the file at the end. That will happen automatically when the
ifsvariable goes out of scope.Revised code: