Link to home
Start Free TrialLog in
Avatar of ProgramDesign
ProgramDesign

asked on

i need to open a file in hex and save all the data to a txt file

i need to  open a file in hex and save all the data to a txt file
ASKER CERTIFIED SOLUTION
Avatar of chensu
chensu
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of nietod
nietod

That is a very C way to do it.  It works, but I'm surprised chensu wasn't more C++ ish.

for a more C++ approach you can open the file with an fstream object and read bytes.  Then ouput the bytes to another fstream object using the hex  i/o manipulator, like

ifstream In("C:\\SOMEFILE.DAT",ios::in | ios::binary);
ofstream Out("C:\\SOMEFILE.TXT",ios::out);

while (true)
{
   unsigned char Chr;
   In  >> Chr;
   if (In.eof()) // If at the end of the file.
      break; // Stop the loop.
   Out << ios::hex << Chr;
};


Depending on what you want the hex to look like, you might want to add spaces and or/controll the width of the hex numbers pritned.
>but I'm surprised chensu wasn't more C++ ish.

Right. Honestly, I have been doing Windows GUI programming, so I seldom use those stuff, such as cin, cout. The first idea I came up with immediately was to use the Windows API function wsprintf.
You have to write "I will not use C in C++" 100 times..... :-)