I have the following piece of code in C++.
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ofstream output("Sample.txt", ios::out | ios::binary);
for(int i = 0; i < 10; i++)
{
output<<arr[i];
}
Now the Sample.txt is like this:
12345678910
Isn’t the “Sample.txt” supposed to be in binary? Why doesn’t it convert everything into binary when i opened the stream in binary mode. What should I do, incase i need binary of every element in the array and then print it to the file.
No. What
std::ios::binarydoes is to prevent things like the translation of'\n'from/to the platform-specific EOL. It will not skip the translation between the internal representation of the data bytes and their string translation. After all, that’s what streams are all about. (Also, think of how you would stream an object of a user-defined type containing pointers in a binary representation.)To actually write objects binary use
std::ostream::write(). Beware, though, the result is platform-specific.