Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 12:59   #1
Ланулечка
 
Регистрация: 09.04.2013
Сообщений: 8
Вопрос Перезаписать один файл размером 5 Гб в другой размером 5Гб

Здравствуйте. Написала код на С++ Visual Expres для перезаписи первого файла во второй, но он, к сожалению, работает только с маленькими файлами, а мне необходимо перезаписать первый(любой) 2гб файл во второй (любой, отличный от первого) 2гб файл. и точно так же с 5гб -ными файлами. Очень прошу Вашей помощи....все передумала, не знаю как исправить код.Вот собственно и он:
Код:
#include "stdafx.h"
# include <stdio.h>
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main()
{
	setlocale (0,"rus");
       FILE *fp1, *fp2;
       long lSize;
       char * buffer;
      size_t result;
      fp1 = fopen ( "c:\\gag.txt" , "rb" );
      if (fp1==NULL) 
      {
         fputs ("Ошибка1!",stderr); exit (1);
       }
       fseek (fp1 , 0 , SEEK_END);
      lSize = ftell (fp1);
      rewind (fp1);// выделяем память под буфер
      buffer = (char*) malloc (sizeof(char)*lSize);
      if (buffer == NULL) {fputs ("Ошибка выделения памяти",stderr); exit (2);} // копируем файл в буфер
      result = fread (buffer,1,lSize,fp1);
      if (result != lSize) {fputs ("Ошибка чтения",stderr); exit (3);}
      if(fclose(fp1))
      {
          printf("Ошибка при закрытии 1 файла.\n");
          exit(4);
       }
       char c;
       fp2 = fopen ( "c:\\fag.txt" , "w+""b" );
       if (fp2==NULL) {fputs ("Ошибка2!",stderr); exit (5);}
       for(int i=0;i<lSize;i++)
       {
	    c=*(buffer+i);
	    fseek(fp2,i,SEEK_SET);
	    putc(c, fp2);
       }
       printf("Информация перезаписана \n ");
       if(fclose(fp2))
        {
	      printf("Ошибка при закрытии 2 файла.\n");
	      exit(6);
         }

         free (buffer);
         system ("pause");
         return 0;
}

Спасибо огромнейшее заранее

Последний раз редактировалось Ланулечка; 29.05.2013 в 08:02.
Ланулечка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Картинка размером 100*100 пикс должна перемещаться по сторонам квадрата размером 300*300 пикс kolomon2707 JavaScript, Ajax 3 07.05.2012 20:07
Задана матрица размером n x m и вектор размером m Alexan88 Общие вопросы C/C++ 3 20.12.2010 16:01
CopyFile пишет файл размером 0 б. Alex Cones Общие вопросы Delphi 10 11.07.2010 03:44
Как наложить иконку с исходным размером 16х16 на битмап с размером 32х32? SkAndrew Мультимедиа в Delphi 1 26.04.2008 14:44