Hello,

I've been struggling with a problem for a while now. I'm trying to print out information which is contained in a binary file.

This what I get when I open it in notepad.

Marjorie Gestring   D201              ð¿      ð¿      ð¿      ð¿      ð¿        Patricia McCormick  D202              ð¿      ð¿      ð¿      ð¿      ð¿        Anna Andersson ick  D203              ð¿      ð¿      ð¿      ð¿      ð¿        Fanny Duracks  ick  D204              ð¿      ð¿      ð¿      ð¿      ð¿        Ulrika Knape   ick  D205              ð¿      ð¿      ð¿      ð¿      ð¿        Greta Johanson ick  D206              ð¿      ð¿      ð¿      ð¿      ð¿        Anna Lindberg  ick  D207              ð¿      ð¿      ð¿      ð¿      ð¿        Gunilla Rosenhoff   D208              ð¿      ð¿      ð¿      ð¿      ð¿        Kathy Peiss nhoff   D209              ð¿      ð¿      ð¿      ð¿      ð¿        Birgitta Conradson  D210              ð¿      ð¿      ð¿      ð¿      ð¿        Lisa Regnell adson  D211              ð¿      ð¿      ð¿      ð¿      ð¿        Leena Laine  adson  D212              ð¿      ð¿      ð¿      ð¿      ð¿        Paulina Suokas son  D213              ð¿      ð¿      ð¿      ð¿      ð¿        Gerda Meyerson son  D214              ð¿      ð¿      ð¿      ð¿      ð¿

I'm not trying to write anything complex right now. I just want to retrieve all the names and D-numbers for now.

What I wonder shouldn't this code print out every character it finds? If I want to get all the names and print it out nicely is it necessary to write a struct to contain the information?

char c;
    in.read( (char*)&c, sizeof(char) );
    while(!in.eof())  {

        in.read( (char*)&c, sizeof(char) );
        cout << c << endl;

    }

Hex Dump?
(That snippet wasn't always so badly mangled, it once was rather pretty -- skip to line 211.)

It is binary file, i'm newbie in c++ sorry if I say something wrong.
Isn't there a way to interpret the binary file. And output only the strings I find in the file?

I've tried to fetch with this following code as well. Then it get the first name on the first loop, second loop I still get all scrap values that I don't want.

ifstream in("file.bin", ios::in | ios::binary);
string output;
in >> output
while(!in.eof())  {
    cout << output << endl;
    in >> output;
}

Hello, I solved the problem by myself now.

What I needed to know was what the size of the object was. And the rest solved automatically.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.