Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
#1

Файлы, работа с ними (ч.2) - C++

12.05.2010, 16:18. Просмотров 507. Ответов 5
Метки нет (Все метки)

Люди, помогите плз с задачами на файлы ( на языке Си )
задачи с файлами - вообще ппц, не понимаю. Хелп Плиз!
Задача 1. Дан файл целых чисел. Заменить в нем каждый элемент с четным номером на два нуля.

Задача 2. Дан файл целых чисел. Заменить в нем каждое положительное число на три нуля.

Задача 3. Дана строка S0, целое число N (<= 4) и N файлов одного и того же типа с именами S1, …, Sn. Объединить содержимое этих файлов (в указанном порядке) в новом файле с именем S0.(S0 - S нулевое )
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2010, 16:18     Файлы, работа с ними (ч.2)
Посмотрите здесь:

Файлы, работа с текстом C++
Файлы, работа с ними (ч.1) C++
C++ Файлы, работа с файлами
C++ Файлы и работа с ними
Чтение данных из файла и работа с ними C++
Лабораторная работа. Файлы C++
C++ Списки. Объявление, заполнение добавление и работа с ними
Работа с функциями. Задача без них работает, а с ними - нет C++
C++ Массивы и работа с ними
C++ Файлы, меню, работа с текстом
C++ Где должны находиться текстовые файлы, для того чтобы с ними можно было работать?
C++ Хранение данных пользователя и работа с ними

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
13.05.2010, 00:27     Файлы, работа с ними (ч.2) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1.
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
52
53
54
55
56
57
#include <stdio.h>
#include <stdlib.h>
 
/* Дан файл целых чисел. Заменить в нем каждый элемент с четным номером на два нуля. */
 
#define FIN_NAME "input.txt"
#define FOUT_NAME "output.txt"
 
int main(void){
    FILE *fin, *fout;
    long num, cnt;
    
    if ( ( fin = fopen(FIN_NAME, "r") ) == NULL ){
        perror("fopen(FIN_NAME, \"r\")");
        exit(1);
    }
    if ( ( fout = fopen(FOUT_NAME, "w") ) == NULL ){
        perror("fopen(FOUT_NAME, \"w\")");
        if ( fclose(fin) )
            perror("fclose(fin)");
        exit(1);
    }
    
    cnt = 0;
    while ( fscanf(fin, "%ld", &num) == 1 ){
        if ( ++cnt & 1 ){
            if ( fprintf(fout, "%ld\n", num) < 0 ){
                perror("fprintf");
                if ( fclose(fin) )
                    perror("fclose(fin)");
                if ( fclose(fout) )
                    perror("fclose(fout)");
                exit(1);
            }
        }
        else {
            if ( fprintf(fout, "%s\n", "00") < 0 ){
                perror("fprintf");
                if ( fclose(fin) )
                    perror("fclose(fin)");
                if ( fclose(fout) )
                    perror("fclose(fout)");
                exit(1);
            }
        }   
    }
    
    if ( num = ferror(fin) )
        perror("fscanf");
    if ( fclose(fin) )
        perror("fclose(fin)");
    if ( fclose(fout) )
        perror("fclose(fout)");
    
    printf("%s\n", ( num ) ? "Shit happens!" : "Done.");
    return (int)num;
}
Файлы, работа с ними (ч.2)

2 - примерно так же, только числа по порядку считать не нужно, достаточно очередное прочитанное число с нулём сравнивать...
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
19.05.2010, 15:49  [ТС]     Файлы, работа с ними (ч.2) #3
а 3-ю задачку кто-нить может сделать ?не знаю как сделать
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.05.2010, 15:56     Файлы, работа с ними (ч.2) #4
Цитата Сообщение от Лестат Посмотреть сообщение
а 3-ю задачку кто-нить может сделать ?не знаю как сделать
1 открыть для записи S0
2 открыть для чтения S1
3 читать (хоть по символу, хоть по строке) S1 и писать в S0
4 закрыть S1
5 со второго пункта тоже для S2, S3...
6 закрыть S0
Лестат
12 / 11 / 1
Регистрация: 24.09.2009
Сообщений: 188
19.05.2010, 15:57  [ТС]     Файлы, работа с ними (ч.2) #5
вот только как эт написать вс-равно не понял =((((((((
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.05.2010, 23:07     Файлы, работа с ними (ч.2) #6
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
52
53
54
55
56
57
58
#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);
}
Yandex
Объявления
19.05.2010, 23:07     Файлы, работа с ними (ч.2)
Ответ Создать тему
Опции темы

Текущее время: 01:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru