I need some help with Binary I/O. I know how to do it when I am specifying the filename in the code
ie: fstream fio("persons.txt", ios::in | ios::out | ios::binary | ios::trunc); What I need to know is how to open or create a file with a file name that will vary and wont be persons. txt everytime. Basically, a file name specified by the user. How would I do that? I can't seem to find anything online for it. Also, please dumb it down for me, I'm still kind of new to this.

Replace "persons.txt" with a string variable containing the filename you have gotten from the user. I hope you know how to get user input...

By the way, code tags should look like this:
[code=c++] ...your code... [/code]
The fact that you tried is appreciated, however :P

You will need to use the c_str() function of the string because a lot of these function accept an array of characters, not an actual string.

#include <string>
using namespace std;

string filename = "whatever.txt";
fstream fio(filename.c_str(), ios::in | ios::out | ios::binary | ios::trunc);


If you are using C++ <string>

string s1;
fstream fio(s1.c_str(), ios::in | ios::out | ios::binary | ios::trunc);

But if you are using an old compiler, Like Turbo C++(although, I recommend you to switch to a new compiler, Read the Article :http://cppdb.blogspot.com/2008/10/why-you-shouldnt-use-you-use-old-c.html)

char s1[50];
fstream fio(s1, ios::in | ios::out | ios::binary | ios::trunc);

Please Mark the thread as Solved: