read binary file



i have a struct that i seem to have successfully written to a binary file. now i'm trying to read that same binary file into another struct of a different name. the second struct does not seem to be accepting the binary data. is there any way to do this with the two structs? i have tried it both by initializing the second struct with "-1" and by not initializing it. here are the important pieces of code:
//writing the file

ofstream outfile("hashtable.dat");
if (!outfile.is_open())
{ ferror=2;
cout << "Unable to open output file. Error code: " << ferror;
}
else
{ outfile.write((char *) &ht, sizeof(ht));//, 1);//, outfile);
outfile.close();
}


//reading the file

ifstream infile("hashtable.dat");
if (!infile.is_open())
{ ferror=3;
cout << "Unable to open input file. Error code: " << ferror;
}
else
{ infile.read((char *) &ht2, sizeof(ht2));//, 1);//, outfile);
infile.close();
}

Comments

  • [blue]The files are being opened in text mode, not binary mode. You need to add the appropriate flags.

    Also, you didn't post the two structures. make sure they are the same size and packing. use pragma to change the packing if necessary.[/blue]
    [code]
    #pragma pack(1)
    // structures here
    #pragma pack()
    ...
    ofstream out("hashtable.dat",ios::out|ios::binary);


    [/code]
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories