MFC: Reading entire file to buffer...
        Posted  
        
            by deostroll
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by deostroll
        
        
        
        Published on 2010-05-05T05:40:35Z
        Indexed on 
            2010/05/05
            5:58 UTC
        
        
        Read the original article
        Hit count: 303
        
I've meddled with some code but I am unable to read the entire file properly...a lot of junk gets appended to the output. How do I fix this?
// wmfParser.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "wmfParser.h"
#include <cstring>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// The one and only application object
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;
    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        _tprintf(_T("Fatal Error: MFC initialization failed\n"));
        nRetCode = 1;
    }
    else
    {
        // TODO: code your application's behavior here.
        CFile file;
        CFileException exp;
        if( !file.Open( _T("c:\\sample.txt"), CFile::modeRead, &exp ) ){            
            exp.ReportError();
            cout<<'\n';         
            cout<<"Aborting...";
            system("pause");
            return 0;
        }
        ULONGLONG dwLength = file.GetLength();
        cout<<"Length of file to read = " << dwLength << '\n';
        /*
        BYTE* buffer;
        buffer=(BYTE*)calloc(dwLength, sizeof(BYTE));
        file.Read(buffer, 25);
        char* str = (char*)buffer;      
        cout<<"length of string : " << strlen(str) << '\n';     
        cout<<"string from file: " << str << '\n';
        */
        char str[100];
        file.Read(str, sizeof(str));
        cout << "Data : " << str <<'\n';
        file.Close();
        cout<<"File was closed\n";
        //AfxMessageBox(_T("This is a test message box"));
        system("pause");
    }
    return nRetCode;
}
© Stack Overflow or respective owner