Sunday, February 20, 2011

How to Read a Binary File in C++

The following code shows how to read a binary file in C++. This is a quick example and doesn’t contain much error handling and if you’re using Visual Studio, make sure you set the appropriate character set:

Right-click on your project in the Solution Explorer and click Properties.
Select Configuration Properties -> General.
Set the Character Set to Use Multi-Byte Character Set.

///////////////////////////////////////////////////////////////////////////////
// A quick example of reading a binary file in C++.
//
// 2010 Jason Barkes - http://jbarkes.blogspot.com
///////////////////////////////////////////////////////////////////////////////

#include "stdio.h" 
#include "stdlib.h"
#include "tchar.h"

int _tmain(int argc, _TCHAR* argv[])
{
    FILE *file;
    char *fileName;
    int   fileSize;
    char *readBuffer;

    
// Set the filename (could also get from a command-line parameter)
    fileName = "c:\\samples\\binary.jpg";

    
// Open the specified file in binary mode ("rb")
    file = fopen(fileName, "rb");

    
// If the file wasn't opened successfully, print an error and close
    if(file == NULL)
    {
        perror("Failed to open file for read access.");
        return 1;
    }

    
// Determine the file size
    fseek(file, 0L, SEEK_END);
    fileSize = ftell(file);
    rewind(file);

    
// Allocate the read buffer
    readBuffer = (char *)malloc(fileSize);

    
// Read the file's data into the read buffer
    long read = fread(readBuffer, 1, fileSize, file);

    
// Do something with the data
    
// ...

    
// Free allocated memory and close the file
    free(readBuffer);
    fclose(file);

    return 0;
}

No comments:

Post a Comment