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 -

#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);

// 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

    return 0;

No comments:

Post a Comment