mix mode file reading/writing?

J

john smith

Hi, I have a file format that is going to contain some parts in ascii, and
some parts with raw binary data. Should I open this file with ios::bin or
no?

For example:
filename: a.bin
number of points = 123
@@@begin data@@@
gibberish follows.....

@@@end data@@@

I will use the >> and << operators for the ascii parts, and iostream's read
and write functions for the binary parts. Any advice or suggestions will be
appreciated. Thanks.

Smith
 
G

Greg P.

john smith said:
Hi, I have a file format that is going to contain some parts in ascii, and
some parts with raw binary data. Should I open this file with ios::bin or
no?
The only difference between text and binary reads are the lack of \r\n reads
for binary. binary reads consider the characters, which mean end of line for
text, potential values themselves. I would suggest opening the file in
binary mode (for most of your file-related coding).
--

Regards,
Greg P.

Golden Rule of Open Source Programming:
"Don't whine about something unless you plan to implement it yourself"
 
E

ES Kim

Greg P. said:
The only difference between text and binary reads are the lack of \r\n reads
for binary. binary reads consider the characters, which mean end of line for
text, potential values themselves. I would suggest opening the file in
binary mode (for most of your file-related coding).
--

Regards,
Greg P.

Golden Rule of Open Source Programming:
"Don't whine about something unless you plan to implement it yourself"

In addition, if you read a binary file in text mode, your program may
quit reading prematurely since it cannot detect the correct EOF position.
 
J

john smith

Hello, I still need some help with this.

When I open the file for writing in ASCII, it writes fine. Then I close it
and reopen it like so:
in.open(filename, ios_base::binary | ios_base:ate), and then I write my
data. When I open the file in notepad, the contents have become all
gibberish, like it's a binary file. But what I'm trying to do is something
like some Linux installation scripts. There is a text area which is human
readable, then it's followed by the binary area. The presumably the text
readable area is parsed by the shell and the binary area is executed. While
that's not what I'm trying to do, I am trying to write and read some raw
data, while being able to parse information about that data in raw text...

Any insights would be appreciated. Thanks in advance.

Smith
 
T

Thomas Matthews

john said:
Hello, I still need some help with this.

When I open the file for writing in ASCII, it writes fine. Then I close it
and reopen it like so:
in.open(filename, ios_base::binary | ios_base:ate), and then I write my
data. When I open the file in notepad, the contents have become all
gibberish, like it's a binary file. But what I'm trying to do is something
like some Linux installation scripts. There is a text area which is human
readable, then it's followed by the binary area. The presumably the text
readable area is parsed by the shell and the binary area is executed. While
that's not what I'm trying to do, I am trying to write and read some raw
data, while being able to parse information about that data in raw text...

Any insights would be appreciated. Thanks in advance.

Smith

Please post your code and indicate where you are having problems.
Also state the expected behavior and the actual behavior.
This will allow people to assist you better.

--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top