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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
VarlamOFF
Сообщений: n/a
09.06.2011, 23:14     Запись массива в файл. #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
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++ Запись массива в dat файл
Запись из массива а файл C++
C++ Запись массива в файл
запись массива в файл C++
Запись массива в файл C++
Запись в файл массива объектов C++
C++ Запись двумерного массива в файл
C++ Запись массива в файл

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 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 минуту
Что не так? Подскажите.
Yandex
Объявления
10.06.2011, 06:55     Запись массива в файл.
Ответ Создать тему
Опции темы

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