Так ! Тебе нужно узнать размер файла ! (для 1 байтной кодировки )
int GetSizeFile(const char * filename)
{
std::ifstream file(filename, std::ios_base::binary);
int size = 0;
file.seekg(0, std::ios_base::end);
size = (int)file.tellg();
return size;
}
Теперь ты узнал размер файла! И можешь все-таки написать свою функцию или метод где ты будешь с помощью метода seekg прыгать по файлу
А вот метод для копирования ! Кстати метод канонический !
bool CopyFiles(const char * pathWithName, const char * outputPathAndName)
{
std::ifstream in(pathWithName, std::ios::in | std::ifstream::binary);
std::ofstream out(outputPathAndName, std::ios::out| std::ofstream::binary);
if (!in)
return false;
if (!out)
return false;
const int bufSize = 4096;
char * buffer = new char[bufSize];
while (!in.eof())
{
in.read(buffer, bufSize);
if (in.gcount())
out.write(buffer, in.gcount());
}
delete[] buffer;
return true;
}