Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 11.11.2009
Сообщений: 28
1

Программа копирования файла

07.04.2010, 21:53. Просмотров 5832. Ответов 4
Метки нет (Все метки)

написать программу копирования файла в двойном экземпляре.Чтение файла происходит блоками.Обработать ошибки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2010, 21:53
Ответы с готовыми решениями:

Программа копирования файла с удвоением пробелов C++
Помогите пожалуйста доделать программу. Нужно написать программу копирования файлов с удвоением...

Написать программу копирования файла. В конец каждой строки файла дописать количество пробелов в строке
Чтение происходит блоками. Обработать ошибки Я пока просто смогла скопировать один файл в...

Нужна программа для копирования
Нужна программа для копирования сообщение отображаемого в поле, какого то определённо кол-во...

Программа поиска и копирования данных
Ребят, помааагите...:help: Через 3 дня наступит авраал.:rtfm: Зачет по С++]:-> Помогите с...

4
2 / 2 / 0
Регистрация: 11.11.2009
Сообщений: 28
12.04.2010, 20:02  [ТС] 2
у кого какие мысли по данной программе?
0
Эксперт С++
7172 / 3230 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
13.04.2010, 09:12 3
Что значит "в двойном экземпляре" ?

Взять исходники программы "cp" из Linux/FreeBSD/UNIX.
0
230 / 60 / 17
Регистрация: 11.03.2010
Сообщений: 294
13.04.2010, 09:27 4
ну для windows подойдет CopyFile()
0
Эксперт С++
5017 / 2596 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.04.2010, 10:36 5
Мысли такие:
1. Открываешь файл для чтения.
2. Организовываешь буфер копирования размером в один блок (например, 16Кб). Так если файл будет 3Гб, то его не придется целиком заталкивать в память.
3. Создаешь файл-копию.
4. Последовательно блок за блоком через буфер копируешь файлы.

Добавлено через 20 минут
То есть примерно вот так:
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
47
48
49
50
51
#include <fstream>
#include <string>
 
int main()
{
    // Размер буфера 
    const int buf_size = 15638;
 
    // Имя исходного файла
    std::string src_file = "file.txt";
    std::string out_file = "file_copy.txt";
    
    // Создание потока для работы с исходным файлом
    std::ifstream ifs(src_file.c_str(), std::ios::binary);
 
    // Подсчет размер исходного файла
    ifs.seekg(0, std::ios::end);
    std::ios::pos_type src_size = ifs.tellg();
    ifs.seekg(0, std::ios::beg);
 
    // Количество целых проходов (для частей файлы, которые полностью умещаются в буфер)
    size_t a_mount = src_size / buf_size;
    // Остаток (остаток файла)
    size_t b_mount = src_size % buf_size;
 
    
    // Создание потока для файла-копии
    std::ofstream ofs(out_file.c_str(), std::ios::binary);
 
    // Это буфер
    char buf[buf_size];
 
    // Цикл по числу полных проходов
    for(size_t i = 0; i < a_mount; ++i)
    {
        ifs.read(buf, buf_size);
        ofs.write(buf, buf_size);
    }
    
    // Если есть остаток
    if(b_mount != 0)
    {
        ifs.read(buf, b_mount);
        ofs.write(buf, b_mount);
    }
 
    ifs.close();
    ofs.close();
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2010, 10:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа с защитой от несанкционированного копирования
Необходимо написать программу на C++, которая защищала бы сама себя от несанкционированного...

Ошибка копирования файла
Здравствуйте. Никак не могу скопировать файл. { char * buffer; int len = 10240; ...

Копирования файла по сетевым папкам
Здравствуйте, как можно скопировать файл, например, екселя?

Написать программу копирования файла с заменой пробелов на символ |.
Программа, которая открывает файл txt и заменяет пробелы на знак &quot; \ &quot;. Можно запись в другой файл.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.