When creating a file stream, you can specify an opening mode. An opening mode is basically a setting to control how the stream opens the file.
(All modes can be found in the
An opening mode can be provided as second parameter to the constructor of a file stream or to its
open() member function:
std::ofstream os("foo.txt", std::ios::out | std::ios::trunc); std::ifstream is; is.open("foo.txt", std::ios::in | std::ios::binary);
It is to be noted that you have to set
ios::out if you want to set other flags as they are not implicitly set by the iostream members although they have a correct default value.
If you don't specify an opening mode, then the following default modes are used:
The file opening modes that you may specify by design are:
|append||Output||Appends data at the end of the file.|
|binary||Input/Output||Input and output is done in binary.|
|input||Input||Opens the file for reading.|
|output||Output||Opens the file for writing.|
|truncate||Input/Output||Removes contents of the file when opening.|
|at end||Input||Goes to the end of the file when opening.|
Note: Setting the
binary mode lets the data be read/written exactly as-is; not setting it enables the translation of the newline
'\n' character to/from a platform specific end of line sequence.
For example on Windows the end of line sequence is CRLF (