By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,778 Members | 1,997 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,778 IT Pros & Developers. It's quick & easy.

mix mode file reading/writing?

P: n/a
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
Jul 19 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
"john smith" <as**@asdf123asdf.net> wrote in message
news:bg***********@news.eecs.umich.edu...
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"
Jul 19 '05 #2

P: n/a
"Greg P." <no@spam.sam> wrote in message
news:fT****************@newsread3.news.pas.earthli nk.net...
"john smith" <as**@asdf123asdf.net> wrote in message
news:bg***********@news.eecs.umich.edu...
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"


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.

--
ES Kim
Jul 19 '05 #3

P: n/a
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

"ES Kim" <es***@svd.co.kr> wrote in message
news:bg**********@news1.kornet.net...
"Greg P." <no@spam.sam> wrote in message
news:fT****************@newsread3.news.pas.earthli nk.net...
"john smith" <as**@asdf123asdf.net> wrote in message
news:bg***********@news.eecs.umich.edu...
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"


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.

--
ES Kim

Jul 19 '05 #4

P: n/a
john smith wrote:
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

Jul 19 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.