Есть код.
Код:
#include "stdafx.h"
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("111.jpg", ios::in|ios::binary);
ofstream out("222.jpg", ios::out|ios::binary);
in.seekg(ios::end);
int iSize = (int)in.tellg();
char* buffer = new char[iSize+1];
in.clear();
in.read(buffer, iSize);
out.write(buffer, iSize);
out.close();
in.close();
delete [] buffer;
return 0;
}
В результате выполнения программы мы получаем выходной файл 222.jpg размеров в 2 байта. Собственно, вся проблема заключается в том, что в результате этого кода мы получаем неверный размер файла.
Код:
int iSize = (int)in.tellg();
В чем проблема я понять так и не могу... Может быть что то подскажите?
Аналогичный код, написанный на С, работает не вызывая нареканий.