1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

IO of binary files

Discussion in 'C' started by pradeep, Mar 20, 2007.

  1. pradeep

    pradeep Team Leader

    To make sure that there is no CR/LF translation on non-Unix computers, you have to use the following lines to open streams to files with binary data.

    Code:
    ofstream os("output.flt", ios::out | ios::binary);
     ifstream is("output.flt", ios::in | ios::binary);
     
    For Visual C++, when using fstream.h, use in addition the flag ios::nocreate. Otherwise you can open a non-existing file for reading, without complaining. (This is not necessary when using fstream).
     
  2. DaWei

    DaWei New Member

    One should not use the .h versions of header files in C++ when there is a non-h version available. They were provided originally for backward compatibility. If you use, for instance, stdio.h, rather than cstdio, you will not get the protection afforded by the std namespace.

    Text mode in windows machines also does more than add the CR; it adds a soft EOF. Some append modes do not deal properly with it. Since all files are binary, anyway, it's best not to use text mode unless you know for a fact that a file you are going to read was written in text mode.
     

Share This Page