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

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

Войти
Регистрация
Восстановить пароль
 
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
#1

Файлы - C++

19.12.2009, 17:10. Просмотров 506. Ответов 5
Метки нет (Все метки)

Спасите меня от мучений с этими файлами Буду очень вам благодарна
В данном задании необходимо осуществить обработку бинарного файла (или файлов)
согласно условию варианта. Имя файла передается в параметрах командной строки, а если оно
не указано, то вводится с клавиатуры.
Дан файл, содержащий вещественные числа (тип double). Определить сумму чисел,
меньших среднего значения всех чисел в файле.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2009, 17:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы (C++):

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? - C++
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из...

Зачем нужно добавлять файлы в файлы исходного кода - C++
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?

Заголовочные файлы и файлы cpp - C++
Со временем сложилось представление что при написании программ стоит разделять МЕТА данные и данные, но для лучшего понимания своих...

Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)? - C++
Здравствуйте, я учусь пользоваться Visual Studio.Пишу программу, в которой создаются и разрушаются объекты, определенного пользователем...

нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) - C++
вот задание для программы: 6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине...

5
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.12.2009, 20:15 #2
А от чего именно спасать ?
0
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
19.12.2009, 20:32  [ТС] #3
От смерти в обнимку с языком Си и не возможностью решить эту задачу
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.12.2009, 20:35 #4
Спасать вижу смысл только тех, кто сам прилагает усилия.
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
19.12.2009, 22:17 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от lera8 Посмотреть сообщение
Дан файл, содержащий вещественные числа (тип double). Определить сумму чисел,
меньших среднего значения всех чисел в файле.
А сам "файл, содержащий вещественные числа" дадут, или тоже сделать надо?
на всякий случай вот Вам
файлосоздавалка
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
59
60
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
/*
*   создавалка двоичного файла, содержащие числа типа double 
*/
 
int main(int argc, char **argv){
    double d;
    FILE *f;
    char buf[BUFSIZ], *p, *file_name;
    
    if ( argc > 1 )
        file_name = argv[1];
    else {
        printf("Name for output file: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        if ( p = strrchr(buf, '\n') )
            *p = '\0';
        if ( !*buf ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        file_name = buf;
    }
    
    if ( ( f = fopen(file_name, "wb") ) == NULL ){
        perror("Can't open output file!\n");
        exit(1);
    }
    
    while ( 1 ){
        printf("Double value or q for quit: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get value!\n");
            exit(1);
        }
        if ( *buf == 'q' )
            break;
        
        d = strtod(buf, NULL);
        if ( errno == ERANGE ){
            printf("Bad value!\n");
            continue;
        }
        
        if ( fwrite(&d, sizeof(double), 1, f) != 1 ){
            perror("Can't write data to file!\n");
            exit(1);
        }
        printf("Saved to file.\n");
    }
    fclose(f);
    exit(0);
}
а вот
читалка и считалка
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
*   читалка двоичного файла и считалка суммы значений, меньших среднего арифметического 
*/
 
int main(int argc, char **argv){
    double *arr, average, sum;
    FILE *f;
    char buf[BUFSIZ], *p, *file_name;
    size_t count, i;
    long pos;
    
    if ( argc > 1 )
        file_name = argv[1];
    else {
        printf("Name for input file: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        if ( p = strrchr(buf, '\n') )
            *p = '\0';
        if ( !*buf ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        file_name = buf;
    }
    
    if ( ( f = fopen(file_name, "rb") ) == NULL ){
        perror("Can't open input file!\n");
        exit(1);
    }
    
    fseek(f, 0, SEEK_END);
    pos = ftell(f);
    rewind(f);
    if ( pos % sizeof(double) ){
        fprintf(stderr, "File corrupt!\n");
        exit(1);
    }
    count = pos / sizeof(double);
    if ( !count ){
        fprintf(stderr, "No data in file!\n");
        exit(1);
    }
    
    if ( ( arr = (double*)calloc(count, sizeof(double)) ) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    if ( fread(arr, sizeof(double), count, f) != count ){
        perror("Can't read file!\n");
        exit(1);
    }
    fclose(f);
    
    for ( sum = 0.0, i = 0; i < count; ++i )
        sum += arr[i];
    average = sum / (double)count;
    for ( sum = 0.0, i = 0; i < count; ++i )
        if ( arr[i] < average )
            sum += arr[i];
    
    printf("All %d values:\n", count);
    for ( i = 0; i < count; ++i )
        printf( ( i < count - 1 ) ? "%.2f " : "%.2f\n", arr[i]);
    printf("Average value: %.2f\n", average);
    printf("Sum of elements less than average is: %.2f\n", sum);
    
    free(arr);
    exit(0);
}


Не по теме:

Цитата Сообщение от odip Посмотреть сообщение
Спасать вижу смысл только тех, кто сам прилагает усилия.
Ну ладно Вам, барышня всё-таки...

3
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
19.12.2009, 23:01  [ТС] #6
easybudda, спасибо вам большое! Обязательно буду стараться разобраться с файлами=) Ещё раз вам спасибо
0
19.12.2009, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2009, 23:01
Привет! Вот еще темы с ответами:

Файлы.Текстовые файлы - C++
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых файлов,файлы какиъ еще типов могут...

Файлы - C++
Работа осуществляется в файле. Во входном файле вводится число, а в выходном файле расчитывается его факториал. Прошу помочь.

файлы - C++
Задание : из одного файла надо переписать все четные строки в другой файл, и подсчитать размер каждого файла в байтах. первую часть...

Файлы - C++
Имеется файл в который вводим текст на его основе необходимо создать новый который который копирует все строки из того в файла в новый в...


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

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

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