I've been working with c++ and I noticed that whenever I use .open() for a file if there's no file with that name, it just creates one. Is there a way to have it not do this?
1 Answer
Check if the file exists first. The following link might help you:
Fastest way to check if a file exists using standard C++/C++11,14,17/C?
Or maybe, you could use the nocreate option:
void open(const char *filename, ios::openmode mode); where,
- First argument *filename specifies the name of file and location.
- Second argument open() member function defines the mode in which the file should be opened.
All the options here: https://www.tutorialride.com/cpp/file-handling-in-c.htm
2 Comments
François Andrieux
Checking if the file already exists before trying to open it is not reliable, the file might have been deleted or moved between the moment you check and when you try to open it.
user4581301
I recommend expanding on this answer to demonstrate which open modes will not create a new file. I've linked a few helpful tables above in the comments you can feel free to reference.
"r+"which is anofsteamopened withios::in, the file will not open and will not be created.