Sunday, 5 June 2016

c++ - How to convert a string to a ifstream



i am trying to open a file with ifstream and i want to use a string as the path (my program makes a string path). it will compile but it stays blank.



string path = NameOfTheFile; // it would be something close to "c:\file\textfile.txt"
string line;


ifstream myfile (path); // will compile but wont do anything.
// ifstream myfile ("c:\\file\\textfile.txt"); // This works but i can't change it
if (myfile.is_open())
{
while (! myfile.eof() )
{
getline (myfile,line);
cout << line << endl;
}
}



I am using windows 7, My compiler is VC++ 2010.


Answer



string path = compute_file_path();
ifstream myfile (path.c_str());
if (!myfile) {
// open failed, handle that
}
else for (string line; getline(myfile, line);) {

use(line);
}

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...