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

Сформировать бинарный файл из элементов заданной структуры - C++

Войти
Регистрация
Восстановить пароль
 
itema
0 / 0 / 1
Регистрация: 28.04.2016
Сообщений: 31
12.05.2016, 10:30     Сформировать бинарный файл из элементов заданной структуры #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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <stdio.h>
 
struct humans
{
    char name[30];
    char fam[30];
    char otch[30];
    char adress[30];
    int tnum;
    int age;
};
struct humans mas[30];
struct humans tmp;
struct humans t;
int sch = 0;
int er;
 
void enter_new();
int menu();
void out();
void find();
void formf();
 
int main()
{
    while(1)
    {
        switch(menu())
        {
            
            case 1: formf(); break;
            case 2: enter_new(); break;
            case 3: find(); break;
            case 4: out(); break;
            case 5: return 0;
            default: printf("\nНе верныиМ† выбор\n");
        }
    }
}
 
void enter_new()
{
    if(sch<30)
    {
        printf("\nЗапись номер %d", sch+1);
        printf("\nВведите фамилию ");
        scanf("%s", &mas[sch].fam);
        printf("Введите имя ");
        scanf("%s", &mas[sch].name);
        printf("Введите отчество ");
        scanf("%s", &mas[sch].otch);
        printf("Введите адрес ");
        scanf("%s", &mas[sch].adress);
        printf("Введите номер телефона ");
        scanf("%d", &mas[sch].tnum);
        printf("Введите возраст ");
        scanf("%d", &mas[sch].age);
        sch++;
    }
    else printf("\nВведено максимальное кол-во записеиМ†");
}
 
int menu()
{
    int er;
    printf("Введите: ");
    printf("\n1 - для формирования файла");
    printf("\n2 - для ввода записи");
    printf("\n3 - для поиска");
    printf("\n4 - для вывода записей");
    printf("\n5 - для выхода\n");
    scanf("%d", &er);
    return er;
}
 
void out()
{
    int sw;
    int k;
    if (sch==0)
        printf("\nНет запиcеиМ†: \n");
    else
    {
        printf("\nВведите: ");
        printf("\n1 - если хотите вывести какую-либо запсь");
        printf("\n2 - если хотите вывести все записи");
        scanf("%d", &sw);
        if(sw == 1)
        {
            printf("\nВведите номер записи, которую нужно вывести ");
            scanf("%d", &k);
            printf("\n");
            printf("\nФамилия: %s ", mas[k-1].fam);
            printf("\nИмя: %s ", mas[k-1].name);
            printf("\nОтчество: %s ", mas[k-1].otch);
            printf("\nАдресс: %s ", mas[k-1].adress);
            printf("\nНомер телефона: %d ", mas[k-1].tnum);
            printf("\nВозраст: %d \n", mas[k-1].age);
        }
        if(sw == 2)
        {
            for(int i = 0; i < sch; i++)
            {
                printf("\nФамилия: %s ", mas[i].fam);
                printf("\nИмя: %s ", mas[i].name);
                printf("\nОтчество: %s ", mas[i].otch);
                printf("\nАдресс: %s ", mas[i].adress);
                printf("\nНомер телефона: %d ", mas[i].tnum);
                printf("\nВозраст: %d \n", mas[i].age);
            }
        }
    }
}
 
void find()
{
    int sw;
    if(sch == 0)
        printf("\nНет записей\n");
    else
    {
        printf("\nВведите номер телефона: ");
        scanf("%d", &sw);
        for(int i=0; i < sch; i++)
            if (mas[i].tnum == sw)
            {
                printf("\nФамилия: %s ", mas[i].fam);
                printf("\nИмя: %s ", mas[i].name);
                printf("\nОтчество: %s ", mas[i].otch);
                printf("\nАдресс: %s ", mas[i].adress);
                printf("\nНомер телефона: %d ", mas[i].tnum);
                printf("\nВозраст: %d \n", mas[i].age);
            }
    }
}
 
void formf()
{
    FILE *f;
    if(!(f=fopen("inf.dat","w+")))
    { printf("Ошибка создания фаиМ†ла\n");}
    for(int i = 0; i < sch; i++)
    { printf("Введите ФИО (пустая строка -- конец списка): ");
        fflush(stdin);
        scanf("%s", &mas[i].fam);
        printf("Введите имя: ");
        scanf("%s", &mas[i].name);
        printf("Введите отчество: ");
        scanf("%s", &mas[i].otch);
        printf("Введите адрес: ");
        scanf("%s", &mas[i].adress);
        printf("Введите номер телефона: ");
        scanf("%d", &mas[i].tnum);
        printf("Введите возраст: ");
        scanf("%d", &mas[i].age);
    } fclose(f);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2016, 10:30     Сформировать бинарный файл из элементов заданной структуры
Посмотрите здесь:

C++ Запись/Чтение структуры в файл (бинарный)
C++ Сформировать двоичный файл из элементов, заданной в варианте структуры. Структура "Стадион"
C++ Бинарный файл (с++) и структуры
C++ Создать массив из 5 элементов с типом заданной структуры
Ввод/вывод структуры в текстовый и бинарный файл C++
Сформировать двоичный файл из элементов, заданной структуры "Абитуриент" C++
Сформировать двоичный файл из элементов, заданных в варианте структуры. Структура "Человек" C++
C++ Запись структуры "Ноутбук" в бинарный файл
C++ Запись структуры в бинарный файл
Записать в бинарный файл массив объектов Student (бинарный файловый ввод/вывод) C++
C++ Как записать в бинарный файл структуры записи из текстового файла?
Запись структуры (в ней есть поля типа данных char*) в бинарный файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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