Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 08.04.2016
Сообщений: 30
1

Скопировать содержимое одного файла в другой файл

06.06.2016, 02:10. Показов 3508. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть рабочий код нужно только доработать , помогите пожалуйста

вот задание :Скопировать содержимое одного файла в другой файл. Для копирования использовать функции блочного ввода-вывода. Файл необходимо открыть в двоичном
режиме.

1. Имена файлов должен указывать пользователь (см. задание).


2. Открытие файлов может завершиться неудачно.
C
1
2
input = fopen("1.txt", "rb");
output = fopen("2.txt", "wb");
3. Запись может пройти неудачно:
C
1
fwrite(buffer, sizeof(char), nread, output);
4. Чтение может тоже пройти неудачно, а может быть конец файла. Одно от
другого надо отличать, в случае ошибки сообщать о ней пользователю.

5. Файлы нужно закрывать. Как уже догадались, закрытие файлов может быть
тоже неудачным.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main (){
FILE *input, *output;
char buffer[BUFSIZ];
size_t nread;
 
input = fopen("1.txt", "rb");
output = fopen("2.txt", "wb");
while(nread = fread(buffer, sizeof(char), sizeof(buffer), input)){
    fwrite(buffer, sizeof(char), nread, output);
}
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2016, 02:10
Ответы с готовыми решениями:

Скопировать содержимое одного файла в другой файл
Скопировать содержимое одного файла в другой файл. Для копирования использовать функции блочного...

Скопировать все строки из одного файла в другой
Нужно скопировать все строки из одного файла в другой, но после выполнения программы во втором...

Скопировать содержимое одного файла в другой
Прошу помочь мне разобраться в составлении данной программы. Условие:Скопировать содержимое...

Скопировать содержимое одного файла в другой
Привет. Мне нужно содержимое одного файла как то быстро скопировать в другой. Что подскажете?...

2
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
06.06.2016, 09:49 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
47
48
49
#include <stdio.h>
#include <errno.h>
#define MAX_BSZ  512
 
int file_copy(const char* existing_filename, const char* new_filename){
    int    err;
    size_t num, len;
    char   buf[MAX_BSZ];
    FILE*  fout, *fin;
 
    if((fin = fopen(existing_filename, "rb")) == NULL)
        return errno;
    
    if((fout = fopen(new_filename, "wb")) == NULL){
        err = errno;
        fclose(fin);
        return err;
    }
 
    err = 0;
    while(((num = fread(buf, sizeof(char), MAX_BSZ, fin)) > 0) && ((err = ferror(fin)) == 0)){
        len = fwrite(buf, sizeof(char), num, fout);
        if((len != num) || (ferror(fout) != 0)){
            err = ferror(fout);
            break;
        }
    }
 
    if(fclose(fin) == EOF){
        if(err == 0)
            err = errno;
    }
 
    if(fclose(fout) == EOF){
        if(err == 0)
            err = errno;
    }
    return err;
}
 
int main(void){
    int err = file_copy("текущий файл.dat", "новый файл.dat");
    if(err == 0)
        puts("Файл удачно скопирован.");
    else
        printf("Произошла ошибка во время копирования файла, код ошибки: %d\n", err);
    getchar();
    return 0;
}
1
5 / 4 / 1
Регистрация: 25.03.2020
Сообщений: 36
01.05.2020, 01:30 3
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
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE  512
 
int file_copy(const char *inptf, const char *otptf)
{
    size_t num;
    char   buffer[SIZE]; //буффер для записи
    FILE *fin, *fout; //входящий-исходящий файлы
 
    if((fin = fopen(inptf, "rb")) == NULL)   //обработка ошибки открытия файлов
    {
        fprintf(stderr,"Could not open file.\n");
        return 1;
    }
 
    if((fout = fopen(otptf, "wb")) == NULL)
    {
        fprintf(stderr,"Could not open file.\n");
        return 2;
        fclose(fin);
    }
 
    while((num = fread(buffer, sizeof(char), SIZE, fin)) > 0)  //чтение копируемого файла до конца
    {
        fwrite(buffer, sizeof(char), num, fout);//запись копии в новый файл
    }
    //закрываем файлы
    fclose(fin); 
    fclose(fout);
    //очищаем буфер
    free(buffer);
    return 0;
}
    
int main(void)
{
    file_copy("1.txt", "2.txt"); 
    return 0;
}
Добавлено через 1 час 25 минут
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
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE  512
 
int file_copy(char *inptf, char *otptf)
{
    size_t num;
    char   buffer[SIZE]; //буффер для записи
    FILE *fin, *fout; //входящий-исходящий файлы
 
    if((fin = fopen(inptf, "rb")) == NULL)   //обработка ошибки открытия файлов
    {
        fprintf(stderr,"Could not open file.\n");
        return 1;
    }
 
    if((fout = fopen(otptf, "wb")) == NULL)
    {
        fprintf(stderr,"Could not open file.\n");
        return 2;
        fclose(fin);
    }
 
    while((num = fread(buffer, sizeof(char), SIZE, fin)) > 0)  //чтение копируемого файла до конца
    {
        fwrite(buffer, sizeof(char), num, fout);//запись копии в новый файл
    }
    //закрываем файлы
    fclose(fin); 
    fclose(fout);
    //очищаем буфер
    //free(buffer);
    return 0;
}
 
int main(int argc, char **argv)
{
    if (argc == 2)
    {
         return 1;
     }
 
    file_copy(argv[1], "2.txt"); //копируемый вводим через командную строку
}
0
01.05.2020, 01:30
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.05.2020, 01:30
Помогаю со студенческими работами здесь

Как скопировать содержимое одного .config файла в другой?
У меня есть два .config файла. Я хотел бы скопировать содержимое одного файла в другой. Как это...

Из одного файла скопировать в другой не удаляя содержимое второго и вывести на экран
Помогите пожалуйста с задачей, на вид простенькая, но не знаю что делать из одного файла...

Скопировать содержимое одного файла в другой, но что бы строки были отсортированы по длине
Есть такая задачка: есть файл A.txt, в котором есть разные строки; нужно скопировать содержимое...

Скопировать содержимое файла в другой файл
Задан символьный файл F. Получить его копию в файле G.

Копировать содержимое одного указанного файла в другой указанный файл, дописывая, а не стирая его содержимое
Dragokas, Помогите пожалуйста с заданием! Задание 3. Написать командный файл, копирующий...

Скопировать содержимое файла в другой файл с помощью оператора For.. To.. Do
Имеется нетипизированный файл длиной 100 байт. Вывести его содержимое на экран. Скопировать его...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru