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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2011, 22:52   #1
ensoleille
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 25
По умолчанию Файлы

Дана строка S0, целое число N (< 4) и N файлов целых чисел с именами S1, …, SN. Объединить их содержимое в новом файле-архиве с именем S0, последовательно записывая в него следующие данные: размер (число элементов) первого исходного файла и все элементы этого файла, размер второго исходного файла и все его элементы, …, размер N-го исходного файла и все его элементы.

Код:
#include <stdio.h>
#include <stdlib.h>
 
#ifndef MAX_PATH
#define MAX_PATH 1024
#endif
 
#define NFILES 5
 
int main(void){
        FILE * f[NFILES];
        char n[NFILES][MAX_PATH];
        int i, ch;
        
        printf("Name for output file: ");
        if ( scanf("%s%*c", n[0]) != 1 ){
                perror("scanf");
                exit(EXIT_FAILURE);
        }
        for ( i = 1; i < NFILES; ++i ){
                printf("Name for input file #%d: ", i);
                if ( scanf("%s%*c", n[i]) != 1 ){
                        perror("scanf");
                        exit(EXIT_FAILURE);
                }
        }
        
        if ( ! ( f[0] = fopen(n[0], "w") ) ){
                perror("fopen");
                exit(EXIT_FAILURE);
        }
        for ( i = 1; i < NFILES; ++i ){
                if ( ! ( f[i] = fopen(n[i], "r") ) ){
                        perror("fopen");
                        if ( fclose(f[0]) )
                                perror("fclose");
                        exit(EXIT_FAILURE);
                }
                while ( ( ch = fgetc(f[i]) ) != EOF ){
                        if ( fputc(ch, f[0]) == EOF ){
                                perror("fputc");
                                if ( fclose(f[0]) )
                                        perror("fclose");
                                if ( fclose(f[i]) )
                                        perror("fclose");
                                exit(EXIT_FAILURE);
                        }
                }
                if ( fclose(f[i]) )
                        perror("fclose");
        }
        if ( fclose(f[0]) ){
                perror("fclose");
                exit(EXIT_FAILURE);
        }
        printf("Done.\n");
        exit(EXIT_SUCCESS);
}
помогите пожалуйста разобраться в коде,а точнее что такое exit(EXIT_FAILURE); и perror
и вот это
Код:
#ifndef MAX_PATH
#define MAX_PATH 1024
#endif

Последний раз редактировалось ensoleille; 12.07.2011 в 23:05.
ensoleille вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы (текстовые файлы) Finn4ik Помощь студентам 0 25.04.2011 21:42
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы Екатерина55555 Помощь студентам 1 29.11.2010 20:33
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53