С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Копирование файлов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обьясните пожалуйста http://www.cyberforum.ru/cpp-beginners/thread341942.html
/*Эта программа преобразует галлоноы в литрыс помощью чисел с плавающей точкой.*/ #include <iostream> using namespace std; int main() { double gallons,liters; cout<<"Введите...
C++ Помогите разобраться с switch Вот код программы: int i_1x; i_1x = 0; char a_n; ifstream input("input.txt"); input >> a_n; switch (a_n) http://www.cyberforum.ru/cpp-beginners/thread341914.html
C++ Видимость в классах
Дана программа #include<iostream> using namespace std; class a {protected: int a1; public: void fc() {a1=5;cout<<a1<<endl;
C++ Потоки. Ввод данных.
Если согласится на ввод второго человека, пропускается ввод его имени... вроде ввод все правильно, не знаю в чем беда :wall: #include"stdafx.h" #include <iostream> using namespace std; class...
C++ Проблема с открыванием http://www.cyberforum.ru/cpp-beginners/thread341886.html
У меня компилятор Dev-C++ версии 4.9.9.2 набрал текст скомпилировал удачно Компилятор: Default compiler Выполнение g++.exe... g++.exe "C:\Documents and Settings\777\Мои документы\Мои...
C++ Построение графика по заданному математическому закону я только недавно изучаю С++, на работе поставили задачу реализовать построение графика по заданному математическому закону: An = An-1 + (1/m)*СO, где n и n-1 это соответственно предыдущий и следущий... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2011, 13:35
Цитата Сообщение от co6ak Посмотреть сообщение
подскажите плз, как быть с файлами > 4 метров.
уже и BUFSIZE определил как 4500000... а он печаль выдает
Цитата Сообщение от co6ak Посмотреть сообщение
Народ, дайте пожалуйста исходник копирования файлов по принципу "открыть файл1 -> считать в буфер содержимое -> открыть файл2 -> заменить содержимое -> сохранить файл2"
очень нужно. зашиваюсь
Юзай
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
 
FILE *f1, *f2;
char sPath1[MAX_PATH];
char sPath2[MAX_PATH];
long fLen = 0;
 
int main()
{
    void * lpBuf;
    do
    {
        printf("Enter File1 path: ");
        scanf("%[^\n]",sPath1);
        printf("Enter File2 path: ");
        scanf("%[^\n]",sPath2);
        if(!(f1 = fopen(sPath1,"rb+")))
            printf("ERROR OPEN %s",sPath1);
        else
        if(!(f2 = fopen(sPath2,"wb+")))
            printf("ERROR OPEN %s",sPath2);
        else
        {
            fseek(f1,0,SEEK_END);
            fLen = ftell(f1);
            fseek(f1,0,SEEK_SET);
            if(!(lpBuf = malloc(fLen)))
                printf("ERROR ALLOCATION MEMORY\r\n");
            else
            {
                fread(lpBuf,1,fLen,f1);
                fwrite(lpBuf,1,fLen,f2);
            }
            fclose(f1);
            fclose(f2);
            if(lpBuf)
                free(lpBuf);
        }
        printf("[Y/N] Y - copy other files\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Файлы большой длинны могут читаться в буфер какое то время, вобще лучше не держать в оперативе большие объёмы памяти а ввести предел буффера (я читал что 2048 - наиболее оптимальный размер буффера, ни больше ни меньше быстрей не считает) и циклично вести запись из 1-го файла во 2-й
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.