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

Объясните как записать в .dat файл

24.01.2022, 00:21. Показов 428. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <tchar.h>
#include <conio.h>
 
using namespace std;
 
struct Data
{
    char  surname[15], name[10], patronymic[15], street[15];
    int   zone, number;
    float S, tax;
};
 
Data D;
char filename[] = "List.dat";
FILE* f;
float c1, c2, c3, c4, c5;
 
void AddData();
void output();
void tax();
void tax_rate();
 
int main()
{
    int _stateMenu;
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    system("color F0");
    system("Cls");
 
    printf("БАЗА ДАННЫХ ПОСЕЛЕНИЯ\n");
    printf("\nВыберите нужный пункт\n");
    printf("\n(1) Регистрация нового участка");
    printf("\n(2) Информация о зарегестрированных участках");
    printf("\n(0) Выход");
    printf("\n\nВаш выбор: ");
    scanf_s("%d", &_stateMenu);
 
    switch (_stateMenu)
    {
    case 1: AddData();  break; 
    case 2: output();   break;
    case 0: exit(0);    break;
    }
}
 
void AddData()
{
    char s = '\0';
    system("cls");
    fopen_s(&f, filename, "rb+");
    if(f)
    {
        do
        {
            fflush(stdin);
            printf("\nФайл существует! Выберите действие:\n");
            printf("0- создать файл заново\n");
            printf("1- добавить данные в существующий файл\n");
            printf("2 - отказаться от ввода\n");
            s = getchar();
            if (s == '0')
            {
                fclose(f);
                fopen_s(&f, filename, "wb+");
            }
            else
                if (s == '1')
                {
                    fclose(f);
                    fopen_s(&f, filename, "ab+");
                }
        } while (s != '0' && s != '1' && s != '2');
    }
    else  fopen_s(&f, filename, "wb+");
    if (s != '2')
    {
        do
        {
            rewind(stdin);
            printf("\nФамилия: ");  gets_s(D.surname);
            printf("\nИмя: ");      gets_s(D.name);
            printf("\nОтчество: "); gets_s(D.patronymic);
            printf("\nЗона: ");     scanf_s("%d", &D.zone);
            rewind(stdin);
            printf("\nУлица: ");    gets_s(D.street);
            printf("\nНомер: ");    scanf_s("%d", &D.number);
            printf("\nПлощадь: ");  scanf_s("%f", &D.S);
 
            fwrite(&D, sizeof(D), 1, f);
 
            printf("Участок зарегестрирован");
            printf("\n Продолжть ввод [д/н]:\n");
            rewind(stdin); s = getchar();
 
        } while (s == 'д' || s == 'Д');
    } fclose(f);
 
}
 
void output()
{
    system("cls");
    fopen_s(&f, filename, "rb+");
    if (!f) printf("Файл не найден!");
    else
    {
        while (fread(&D, sizeof(D), 1, f))
        {
            printf("\n\n%s" , D.surname); printf(" %s", D.name); printf(" %s", D.patronymic);
            printf("\nЗона : %d", D.zone);
            printf("\nУлица: %s", D.street);
            printf("\nНомер: %i", D.number);
            printf("\nПлощадь: %f", D.S);
            printf("\nНалог: %f", D.tax);
        }
        printf("\n");
        fclose(f);
    }
    system("Pause");
}
 
void tax()
{
    float z, s;
 
    tax_rate();
 
    fopen_s(&f, filename, "rb+");
    while(fread(&D, sizeof(D), 1, f))
    {
 
        z = D.zone;
        s = D.S;
        if (z == 1) D.tax = c1 * s;
        if (z == 2) D.tax = c2 * s;
        if (z == 3) D.tax = c3 * s;
        if (z == 4) D.tax = c4 * s;
        if (z == 5) D.tax = c5 * s;
        scanf_s("%f", &D.tax);
    }
    fwrite(&D, sizeof(D), 1, f);
    rewind(stdin);
    fclose(f);
}
 
void tax_rate()
{
    ifstream tax_rate("tax_rate.txt");
    tax_rate >> c1 >> c2 >> c3 >> c4 >> c5;
    tax_rate.close();
}
Доброго времени суток. В коде выше: void tax(). Идея такова. Есть файл .dat в котором записаны: фамилия(D.surname) имя(D.name) отчество(D.patronymic) номер(D.number) зоны(D.zone) улица(D.street) и площадь(D.S). Все это вводится с клавиатуры и сохраняется в файле List.dat. Есть файл tax_rate.txt. Там 5 чисел (целая_часть.дробная_часть). с1 с2 с3 с4 с5. вот нужно в файл list.dat в конец каждой сточки добавить D.tax, которая равна площадь S умножить на с1\с2\с3\с4\с5 в зависимости от того, в какой зоне(D.zone) от 1 до 5 находится участок. как это сделать, подскажите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2022, 00:21
Ответы с готовыми решениями:

Как можно в .dat файл записать и прочитать массив
как можно в .dat файл записать и вытащить массив. массив: st=&quot;строка 1&quot;; st=&quot;строка 2&quot;;...

Записать в файл 1.dat все положительные значения, а в файл 2.dat – все отрицательные значения
И снова здравствуйте форумчане :) И снова Assember форумчане :) Дан файл, содержащий целые 8-ми...

Файл A2.dat содержит действительные числа. Прочитать файл, найти минимальное и максимальное числа, вывести их на экран и записать в текстовый файл.
помогите....очень надо...а то зачёт не поставят((

Файл “Task.dat” имеет рядок символов. Записать в стек только маленькие буквы. Содержание списка вывести в файл “Task.sol”
Это 10 класс,честно говорю,надо не мне,человечек попросил,а я совсем &quot;не алё&quot; в паскале и т.п .. ...

Записать в новый файл все символы из некоторого символьного файла chrs.dat, не являющиеся буквами
Записать в новый файл все символы из некоторого символьного файла chrs.dat, не являющиеся буквами....

0
24.01.2022, 00:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2022, 00:21
Помогаю со студенческими работами здесь

Прочитать из файла (input.dat) список имён. В файл (output.dat) перенести только уникальные имена
Помогите, пожалуйста, с программой. Паскаль. Необходимо прочитать из файла (input.dat) список...

Переписать текст из файла input.dat в файл output.dat, заменив регистр букв в словах, где 2 и более одинаковые гласные
Задание: Файл input.dat содержит несколько строк текста.Слова в тексте могут разделяться пробелами...

Прочитать из файла « File 1. dat » данные в массив символов, отсортировать данный массив по возрастанию и записать результат в « File 2. dat »
Напишите программы на Паскале! 1. Используя ввод с клавиатуры создать файл « File 1. dat » ,...

Записать корневой каталог диска "С" под именем F1.DAT файл из 30 вещественных чисел Zk ; программное имя файла Tpr1.
Записать корневой каталог диска &quot;С&quot; под именем F1.DAT файл из 30 вещественных чисел Zk ;...

Как раскодировать *.dat файл?
Прошу помощи, как научиться раскодировать *.dat file.(мне надо перевести *.dat фаил в привычный...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru