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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
VarlamOFF
Сообщений: n/a
#1

Запись массива в файл. - C++

09.06.2011, 23:14. Просмотров 2365. Ответов 2
Метки нет (Все метки)

Ребят, помогите. Завтра курсач сдавать. Есть массив структур. Как его в файл записать? Кидаю весь файл, не ругайтесь.
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
// Sorevevnovaniya.cpp : Defines the entry point for the application.
 
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <string>
#include <fstream>
#include <iomanip>
#include <memory.h>
#include <string.h>
using namespace std;
void registraciya();
void ypragneniya();
void print();
void sort();
int i,j,menu;
string date,recordsman;
float record;
const int s=1000;
struct sportsman{string surname,name,lastname,zvaniye;//описываеется структура "спортсмен"
                 float zayavka1,zayavka2,zayavka3,summ,category;
                 bool zach1,zach2,zach3;
                 int personal_number;};
 sportsman a[s];
int main()
{SetConsoleCP(1251);//Для ввода русских букв
SetConsoleOutputCP(1251);//Для вывода русских букв
i=1;
cout<<"Приветствие"<<endl;
cout<<"Введите дату пожалуйста:"<<endl;
cin>>date;
menu = -1;
while (menu != 0)
{cout<< "1. Регистрация уастников\n"
     << "2. Соревновательная часть\n"
     << "3. Вывод списка участников\n"
     <<"4. xyak\n";
cin >> menu;
if (menu == 1) registraciya();
if (menu == 2) ypragneniya();
if (menu == 3) {sort();print();
if (menu == 4) xyak();};}
_getch();
return 0;
}
void registraciya()//регистрация участников
{cout<<"Заполнение списка(для выхода введите 0)"<<endl;
    for (i=1;;i++)
    {cout<<"Номер участника:"<<endl;
    cin>>a[i].personal_number;
    if (a[i].personal_number == 0) break;
    cout<<"Фамилия участника:"<<endl;
    cin>>a[i].surname;
    cout<<"Имя участника:"<<endl;
    cin>>a[i].name;
    cout<<"Отчество участника:"<<endl;
    cin>>a[i].lastname;
    cout<<"Весовая категория:"<<endl;
    cin>>a[i].category;
    cout<<"Заявка на жим лежа(кг):"<<endl;
    cin>>a[i].zayavka1;
    cout<<"Заявка на приседания(кг):"<<endl;
    cin>>a[i].zayavka2;
    cout<<"Заявка на становую тягу(кг):"<<endl;
    cin>>a[i].zayavka3;
    j=i+1;
    }
}
void ypragneniya()//сореновательная часть
{cout<<"Соревновательная часть"<<endl;
for(i=1;i<j;i++)
{cout<<cout<<a[i].personal_number<<" "<<a[i].surname<<" "<<a[i].name<<" "<<a[i].lastname<<" в весовой категории "<<a[i].category<<endl;
cout<<"Заявка на жим лежа:"<<a[i].zayavka1<<" Зачет?(1/0)"<<endl;
cin>>a[i].zach1;
cout<<"Заявка на приседания:"<<a[i].zayavka2<<" Зачет?(1/0)"<<endl;
cin>>a[i].zach2;
cout<<"Заявка на становую тягу:"<<a[i].zayavka3<<" Зачет?(1/0)"<<endl;
cin>>a[i].zach3;
a[i].summ=0;//подсчет суммы трех упражнений
if (a[i].zach1) a[i].summ=a[i].summ + a[i].zayavka1;
if (a[i].zach2) a[i].summ=a[i].summ + a[i].zayavka2;
if (a[i].zach3) a[i].summ=a[i].summ + a[i].zayavka3;
if (a[i].category==52) //автоматическое заполнение поля "спортивное звание"
    {if (a[i].summ>=257.5) a[i].zvaniye="Third";
    if (a[i].summ>=280) a[i].zvaniye="Second";
    if (a[i].summ>=320) a[i].zvaniye="First";
    if (a[i].summ>=395) a[i].zvaniye="KMS";
    if (a[i].summ>=470) a[i].zvaniye="MS";
    if (a[i].summ>=530) a[i].zvaniye="MSMK";};
if (a[i].category==56)
    {if (a[i].summ>=285) a[i].zvaniye="Third";
    if (a[i].summ>=305) a[i].zvaniye="Second";
    if (a[i].summ>=347.5) a[i].zvaniye="First";
    if (a[i].summ>=425) a[i].zvaniye="KMS";
    if (a[i].summ>=510) a[i].zvaniye="MS";
    if (a[i].summ>=580) a[i].zvaniye="MSMK";};
if (a[i].category==60)
    {if (a[i].summ>=305) a[i].zvaniye="Third";  
    if (a[i].summ>=340) a[i].zvaniye="Second";
    if (a[i].summ>=380) a[i].zvaniye="First";
    if (a[i].summ>=465) a[i].zvaniye="KMS";
    if (a[i].summ>=555) a[i].zvaniye="MS";
    if (a[i].summ>=625) a[i].zvaniye="MSMK";};
if (a[i].category==67.5)
    {if (a[i].summ>=330) a[i].zvaniye="Third";  
    if (a[i].summ>=360) a[i].zvaniye="Second";
    if (a[i].summ>=410) a[i].zvaniye="First";
    if (a[i].summ>=505) a[i].zvaniye="KMS";
    if (a[i].summ>=625) a[i].zvaniye="MS";
    if (a[i].summ>=700) a[i].zvaniye="MSMK";};
if (a[i].category==75)
    {if (a[i].summ>=355) a[i].zvaniye="Third";  
    if (a[i].summ>=385) a[i].zvaniye="Second";
    if (a[i].summ>=435) a[i].zvaniye="First";
    if (a[i].summ>=530) a[i].zvaniye="KMS";
    if (a[i].summ>=675) a[i].zvaniye="MS";
    if (a[i].summ>=765) a[i].zvaniye="MSMK";};
if (a[i].category==82.5)
    {if (a[i].summ>=385) a[i].zvaniye="Third";  
    if (a[i].summ>=435) a[i].zvaniye="Second";
    if (a[i].summ>=485) a[i].zvaniye="First";
    if (a[i].summ>=565) a[i].zvaniye="KMS";
    if (a[i].summ>=720) a[i].zvaniye="MS";
    if (a[i].summ>=820) a[i].zvaniye="MSMK";};
if (a[i].category==90)
    {if (a[i].summ>=405) a[i].zvaniye="Third";  
    if (a[i].summ>=462.5) a[i].zvaniye="Second";
    if (a[i].summ>=510) a[i].zvaniye="First";
    if (a[i].summ>=585) a[i].zvaniye="KMS";
    if (a[i].summ>=750) a[i].zvaniye="MS";
    if (a[i].summ>=850) a[i].zvaniye="MSMK";};
if (a[i].category==100)
    {if (a[i].summ>=450) a[i].zvaniye="Third";  
    if (a[i].summ>=487.5) a[i].zvaniye="Second";
    if (a[i].summ>=540) a[i].zvaniye="First";
    if (a[i].summ>=620) a[i].zvaniye="KMS";
    if (a[i].summ>=775) a[i].zvaniye="MS";
    if (a[i].summ>=895) a[i].zvaniye="MSMK";};
if (a[i].category==110)
    {if (a[i].summ>=485) a[i].zvaniye="Third";  
    if (a[i].summ>=515) a[i].zvaniye="Second";
    if (a[i].summ>=570) a[i].zvaniye="First";
    if (a[i].summ>=655) a[i].zvaniye="KMS";
    if (a[i].summ>=795) a[i].zvaniye="MS";
    if (a[i].summ>=915) a[i].zvaniye="MSMK";};
if (a[i].category==125)
    {if (a[i].summ>=505) a[i].zvaniye="Third";  
    if (a[i].summ>=537.5) a[i].zvaniye="Second";
    if (a[i].summ>=605) a[i].zvaniye="First";
    if (a[i].summ>=680) a[i].zvaniye="KMS";
    if (a[i].summ>=810) a[i].zvaniye="MS";
    if (a[i].summ>=945) a[i].zvaniye="MSMK";};
if (a[i].category==140)
    {if (a[i].summ>=520) a[i].zvaniye="Third";  
    if (a[i].summ>=555) a[i].zvaniye="Second";
    if (a[i].summ>=625) a[i].zvaniye="First";
    if (a[i].summ>=730) a[i].zvaniye="KMS";
    if (a[i].summ>=835) a[i].zvaniye="MS";
    if (a[i].summ>=970) a[i].zvaniye="MSMK";};
if (a[i].category==+140)
    {if (a[i].summ>=550) a[i].zvaniye="Third";  
    if (a[i].summ>=585) a[i].zvaniye="Second";
    if (a[i].summ>=650) a[i].zvaniye="First";
    if (a[i].summ>=750) a[i].zvaniye="KMS";
    if (a[i].summ>=870) a[i].zvaniye="MS";
    if (a[i].summ>=1000) a[i].zvaniye="MSMK";};
}
}
void print()//вывод на экран всех участников
{cout<<date<<endl;
for (i=1;i<j;i++)
{cout<<a[i].personal_number<<" "<<a[i].surname<<" "<<a[i].name<<" "<<a[i].lastname<<" в категории "<<a[i].category<<" набрал в сумме "
<<a[i].summ<<" присваивается звание "<<a[i].zvaniye<<endl;};
cout<<"Наибольших успехов достиг "<<recordsman <<" с результатом "<<record <<endl;}
void sort()
{record=0;
for (i=1;i<j;i++)
{if (a[i].summ>record)
{record=a[i].summ;recordsman=a[i].surname;};}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 23:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись массива в файл. (C++):

Запись массива в файл - C++
Здравствуйте. Помогите найти ошибку в программе. С клавиатуры вводится предложение, программа считает сколько слов начинается с одинакового...

Запись массива в файл - C++
Есть класс class Figure { protected: Figure() { penColor = Form1-&gt;ColorBox1-&gt;Selected;...

Запись массива в файл - C++
Есть функция, записывающая данные в массив void umnogenie(char a, int &amp;n, char b, int m) { char c; int i,j,l,o; ...

Запись из массива а файл - C++
Добый день. Задача такая: Из файла в массив записать содержащийся в нём текст вместе с пробелами, а затем в другой файл из этого массива...

запись массива в файл - C++
Имеется структура в массиве. когда ввожу данные например: 2,3,4 7,8,5 то получаю 2 3 4 0 0 0 0 0 0 7 8 5 Как...

Запись массива символов в файл - C++
Здравствуйте! А кто знает как записать массив символов, имеющий пробелы, в файл, а потом его считать и вывести на экран? Подробнее: -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
10.06.2011, 02:34 #2
используй fwrite...
VarlamOFF
Сообщений: n/a
10.06.2011, 06:55 #3
Использовал, теперь файл создается. Но в него ничего не записывается.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int zapis()
 {
      FILE *file;
      if ((file = fopen("3.txt","w")) == NULL)
         printf("Файл невозможно открыть или создать\n");
      else{
         for(int i=1; i<j;i++)
         {  scanf("%d", &a[i]);
            fwrite (&a[i], sizeof(string),100, file );
         }
      }
      fclose(file);
      getch();
 return 0;
 }
Добавлено через 1 минуту
Что не так? Подскажите.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 06:55
Привет! Вот еще темы с ответами:

Запись двумерного массива в файл - C++
Добрый день! Помогите пожалуйста с программой. Есть функция, в которой вводится двумерный массив в программу. А затем выводится на...

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

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

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


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

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

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