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

Работа с бинарным файлом

20.11.2016, 20:12. Показов 378. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто может помочь выполнить хотя б 4 пункт? Буду очень благодарен. Вот код, который я уже сделал

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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#include <iostream> 
#include <fstream> 
#include <random> 
#include <ctime> 
#include <cstdlib> 
#include <windows.h> 
 
 
 
#include <iostream> 
#include <fstream> 
#include <random> 
#include <ctime> 
#include <cstdlib> 
#include <windows.h> 
 
 
 
 
int main()
{
 
    using namespace std;
 
    srand((int)time(NULL));
 
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    cout << "\n\n";
    cout << "\t # # # # # # # # # # # # # # # #" << endl;
    cout << "\t # (1)Відкрити файл                #" << endl; //OK 
    cout << "\t # (2)Зберегти зміни у файлі        #" << endl; //OK 
    cout << "\t # (3)Згенерувати файл               #" << endl; //OK 
    cout << "\t # (4)Записати задану кількість чисел  #" << endl;
    cout << "\t # (5)Видалити задану кількість чисел    #" << endl;
    cout << "\t # (6)Відсотрувати елементи           #" << endl;
    cout <<"\t # (7)Закрити файл та зберегти зміни         #" << endl;
    cout << "\t # # # # # # # # # # # # # # # #" << "\n\n\n";
 
    int countReadFromFile = 0;
    int count = 0;
 
    double x = 0;
    double number = 0;
    int range = 0;
    double curnum;
    double randomNumber = 0;
    double sumOFrandomNumber = 0;
    double average = 0;
    int choiceInMenu = 0;
    ofstream out; // object that allows to write to file 
    ifstream in;
 
 
    while (true)
    {
 
 
        cout << "\t#Enter your choice: ";
        cin >> choiceInMenu;
 
 
        switch (choiceInMenu)
        {
        case 1: //Відкриття файлу, імя якого задається із клавіатури. 
            char fileName[20];
            cout << "\t#Give a name to FILE: ";
            cin >> fileName;
 
            out.open(fileName, ios::binary | ios::app); // створення файлу та задання імені
            cout << "\t#file <" << fileName << "> created !" << endl;
            break;
 
        case 2: //Збереження змін у файлі. 
            out.flush();
            break;
 
        case 3: 
            cout << "\t#How match numbers you want to generate ? : ";
 
            cin >> number;
            cout << "\t#Enter range: ";
 
            cin >> range;
 
            cout << "\n\n\n\tRESULT :::::::::::::::::::::::::::::::::::::::::::";
            cout << "\n\t#Randomly generated ...\n";
 
            out.write((char *)&number, sizeof(number)); //write number 
            count = number;
 
            while (number > 0) //Записуємо згенеровані числа в файл
            {
 
                randomNumber = 1.0 * (rand() % range);
                sumOFrandomNumber += randomNumber;
                number--;
                out.write((char *)&randomNumber, sizeof(randomNumber));
                cout << "\trand " << randomNumber;
 
            }
 
            average = sumOFrandomNumber / count;
            cout << "\n\tAverange is : " << average << endl;
            out.write((char *)&average, sizeof(average)); //write average 
            cout << "\n\t#Writing to file COUNT OF NUMBERS\\RANDOM NUMBERS\\AVERAGE" << endl;
            out.close();
 
            cout << endl;
            in.open(fileName, ios::binary | ios::in);
 
            cout << "\t#Reading from file «" << fileName << "» ..." << endl;
 
            while (!in.eof())
            {
                in.read((char*)&x, sizeof(x));
                cout << "\trand " << x;
                ++countReadFromFile;
                if (countReadFromFile >= (count + 2)) //Щоб не зчитувати останнє значення 2 рази
                {
                    countReadFromFile = 0;
                    break;
                    
                }
            }
            in.close();
 
            break;
        case 4:
            cout << "Задайте кількість чисел:" << endl;
            cin >> number;
            out.write((char *)&number, sizeof(number));
        
            
 
            while(number>0){
                cout << "Задайте число:" << endl;
                cin >> curnum;
                out.write((char *)&curnum, sizeof(curnum));
                number--;
            }
            in.open(fileName, ios::binary | ios::in);
 
            while (!in.eof())
            {
                in.read((char*)&x, sizeof(x));
                cout << "\t" << x;
                ++countReadFromFile;
                if (countReadFromFile >= (count + 2)) //Щоб не зчитувати останнє значення 2 рази
                {
                    break;
                }
            }
        
            break;
 
        case 5:
            break;
        case 6:
            break;
        case 7: //Закриття файлу та збереження змін у ньому. 
 
            out.flush();
            out.close();
            
            break;
        default:
            cout << " ERROR !" << endl;
            break;
        }
 
        cout << "\n\n\tFor EXIT press \'e\' , to continue press ANY OTHER KEY: ";
        char exitFromProgramm = '0';
        cin >> exitFromProgramm;
        if (exitFromProgramm == 'e')
        {
            break;
        }
    }
 
 
 
}
Добавлено через 1 минуту
Вот задание:
Написать программу обработки бинарного файла, предусмотрев следующие пункты меню, сформированные с помощью оператора выбора:
1. Открытие файла, имя которого задается с клавиатуры.
2. Сохранение изменений в файле.
3. Генерация исходного файла с использованием генератора случайных чисел. Структура файла следующая: первое число - целое, задает количество чисел, которые в нем записаны; дальше следуют сгенерированные в заданном диапазоне действительные числа (диапазон задается с клавиатуры) последним числом является среднее значение чисел, хранящихся в файле.
4. Запись в файл заданного количества чисел (начиная с заданной позиции), значения которых задаются с клавиатуры.
5. Удаление с файла заданного количества чисел, начиная с заданной позиции.
6. Сортировка элементов файла по убыванию без использования массивов.
7. Закрытие файла и сохранения изменений в нем.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2016, 20:12
Ответы с готовыми решениями:

Работа с бинарным файлом
Всем привет! есть тестовый пример в котором я пытаюсь записать в бинарный файл три переменных, а...

Работа с бинарным файлом
Можно ли из бинарного файла выписывать строки?

Работа с бинарным файлом
почему программа не выводит 16-ричный дамп бинарного файла? int main () { streamoff lSize; ...

Работа с бинарным файлом
Доброго времени суток всем. Помогите пожалуйста доделать задачу: Создать класс для работы с...

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

Работа со структурой и бинарным файлом
Что может быть за ошибка в case 2? struct sport_complex{//Структура struct trainers{ char...

Работа с бинарным файлом и массив структур
Задание следующее: В компании одному номеру соответствует одно помещение, в помещении до 5...

Работа с бинарным файлом(Подсчет записей)
void open_bin(l_lib *l, int lines_count) // функция для открытия bin файла { fstream...

Выводится одна лишняя строка (работа с бинарным файлом)
Буду благодарен за помощь. #include&lt;iostream&gt; #include &lt;fstream&gt; #include &lt;algorithm&gt;...

Работа с бинарным файлом (Создать новый текстовый файл, в котором числа будут отсортированы в порядке возрастания.)
Аларм! Срочно прошу помощи! Есть задача: Записать бинарный файл с массивом целых чисел. Создать...

задача с бинарным файлом
Помогите, пожалуйста, написать на C++. Нужно создать бинарный файл f и записать в него целые числа....


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

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