C++: Example - File open dialog

Example of file open dialog

When you aren't using a GUI, you can make a simple text-based file open dialog with something like the following code. A portability problem with this code is that the default directory depends on the settings of the I/O library that you're using. The system I'm using defaults to the directory where the object program is located, but results will vary.
#include <fstream>
using namespace std;
. . .
//--- select and open file
ifstream fin;     // The new file stream.
string filename;  // Where to read file name.
do {
    cout << "Enter input data file name:";
    cin >> filename;     // Get the file name.
    fin.open(filename.c_str());  // Convert to C-string and open it.
    if (!fin) {          // Will fail if didn't exist.
        cout << "Unable to open " << filename << endl;
    }
} while (!fin);          // Continue until good file.

while (fin >> . . .
   . . .
   
fin.close();

Parameter to open must be a C-string

The call to open takes a file name parameter. It must be a C-string (type char *), not type string. The example above illustrates the use of the c-str() function which returns a C-string from a string.