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

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

Войти
Регистрация
Восстановить пароль
 
Настьона
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 57
#1

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

12.01.2011, 21:43. Просмотров 897. Ответов 2
Метки нет (Все метки)

Кто знает,помогите,пожалуйста, решить задачу:
Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные.
Структура "Человек":
- фамилия, имя, отчество;
- год рождения;
- рост;
- вес.
Вывести созданный файл на экран.
компилятор BC31.
Спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать файл и записать в него структурированные данные (C++):

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

Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные - C++
Помогите очень нужна ваша помощь. Cтруктура "Стадион": - название; - год постройки; - количество площадок; - виды спорта. ...

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

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы. - C++
Не могу понять почему не работает вот этот кусок текста. ofstream q ("1.part"); for (int i=0; i<10; ++i) { q << mas ; ...

Файл: Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n. - C++
Помогите подготовиться к отчету.Создать файл и записать в него обратные натуральные числа 1,1/2,...1/n.Вывести на экран все компоненты...

Создать файл и записать в него текст - C++
"если файла нет создать сразу с словами" я знаю как создать файл через c++ ofstream ofs("test.txt"); ofs.close(); но как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sandye51
12.01.2011, 21:44
  #2

Не по теме:

Цитата Сообщение от Настьона Посмотреть сообщение
компилятор BC31.
спасибо, нет)

Настьона
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 57
12.01.2011, 23:39  [ТС] #3
Почему?)

Добавлено через 1 час 49 минут
Эта ,вроде, та программа ,но не на моем компиляторе, помогите её переделать.
ПОЖАЛУЙСТА!!!
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
#include <iostream>
#include <cstring>
#include <windows.h>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
 
 
using namespace std;
 
char* Rus(const char* text);
 
char way[80];
char *file;
double x;
int p;
 
struct student
{
    char fio[50];
    char adr[50];
    int gr;
    double rat;
    void input();
};
 
void tabl()
{
    int z;
    for (z=0; z<80; z++)
    cout<<'-';
}
 
void print(student *s, int n)
{
        int i;
        tabl();
        cout.setf(ios::left);
        cout<<'|'<<' '<<setw(22)<<Rus("ФИО");
        cout<<'|'<<' '<<setw(34)<<Rus("Домашний адрес");
        cout<<'|'<<' '<<setw(7)<<Rus("Группа");
        cout<<'|'<<' '<<setw(8)<<Rus("Рейтинг");
        cout<<'|';
        tabl();
        for (i=0; i<n; i++)
        {
            cout.setf(ios::left);
            cout<<'|'<<' '<<setw(22)<<s[i].fio<<'|';
            cout<<' '<<setw(34)<<s[i].adr<<'|';
            cout<<' '<<setw(7)<<s[i].gr<<'|';
            cout<<' '<<setw(8)<<s[i].rat;
            cout<<'|';
            tabl();
        }
}
 
void student::input()
{   
    cout<<Rus("Введите фамилию, имя, отчество студента -> ");
        cin.clear();
        _flushall();
        cin.getline(fio, 79);
        cout<<Rus("Введите домашний адрес -> ");
        cin.clear();
        _flushall();
        cin.getline(adr, 79);
        cout<<Rus("Введите группу -> ");
        cin>>gr;
        cout<<Rus("Введите рейтинг -> ");
        cin>>rat;
}   
 
void main()
{
    student *s;
    int n, i, o=-1;
    for (; o ;)
    {
    cout<<Rus("1.Ввод с клавиатуры в консольном режиме\n2.Вывод на экран в консольном режиме\n3.Создать файл и записать в него структурированные данные\n");
    cout<<Rus("4.Вывести созданный файл на экран\n5.Удалить все элементы у которых рейтинг меньше заданного\n");
    cout<<Rus("6.Добавить элемент с заданным номером\n7.Выход\n");
    cout<<Rus("\nВыберите нужный вам пункт -> ");
    cin>>o;
    cout<<"\n";
    if(o==1)
    {
        cout<<Rus("Введите количество студентов -> ");
        cin>>n;
        s=new student[n];
        for (i=0; i<n; i++)
        {
            s[i].input();
        }
    }
    if(o==2)
    {
        cout<<Rus("\nВведенные данные:\n");
        print(s, n);
    }
    if(o==3)
    {
        cout<<Rus("Введите путь к файлу или название файла для записи в него данных -> \n");
        cin.clear();
        _flushall();
        cin.getline(way,80);
        ofstream output(way , ios::out | ios::trunc);
        output.setf(ios::left);
        if (!output.is_open())
        {
            cout<<Rus("/nОшибка!\n");
            return;
        }
        for (i=0;i<n;i++)
        {
            output.setf(ios::left);
            output<<setw(22)<<s[i].fio;
            output<<setw(34)<<s[i].adr;
            output<<setw(7)<<s[i].gr;
            output<<setw(8)<<s[i].rat<<"\n";
        }
        output.close();
    }
    if(o==4)
    {
    cout<<Rus("Введите путь к файлу или название файла для чтения из него данных -> \n");
    cin.clear();
    _flushall();
    cin.getline(way,80);
    ifstream input(way, ios::in);
    const int buffer = 4096; 
    file=new char[buffer];
    if (!input.is_open())
    {
        cout<<Rus("Ошибка\n");
        return;
    }
    cout<<Rus("\nПрочитанные данные из файла:\n");
    tabl();
    while(input.peek()!=EOF)
    {
        input.getline(file, buffer);
        cout<<file<<"\n";
    }
    tabl();
    input.close();
    }
    if(o==5)
    {
        cout<<Rus("Введите путь к файлу или название файла для чтения из него данных\n");
        cin.clear();
        _flushall();
        cin.getline(way,80);
        ofstream output(way , ios::out | ios::trunc);
        if (!output.is_open())
        {
            cout<<Rus("Ошибка\n");
            return;
        }
        cout<<Rus("Удалить из файла элементы рейтинг которых меньше -> ");
        cin>>x;
        for (i=0; i<n; i++)
        {
            if (x<s[i].rat)
            {
                output.setf(ios::left);
                output<<setw(22)<<s[i].fio;
                output<<setw(34)<<s[i].adr;
                output<<setw(7)<<s[i].gr;
                output<<setw(8)<<s[i].rat;
                output.put(13);
                output.put(10);
            }
        }
    }
    if (o==6)
    {
        cout<<Rus("Введите путь к файлу или название файла для чтения из него данных\n");
        cin.clear();
        _flushall();
        cin.getline(way,80);
        ofstream output(way, ios::app);
        if (!output.is_open())
        {
            cout<<Rus("Ошибка\n");
            return;
        }
        cout<<Rus("Введите номер элемента, который следует добавить -> ");
        cin>>p;
        student *r;
        r=new student[n];
        cout<<Rus("Введите фамилию, имя, отчество студента -> ");
        cin.clear();
        _flushall();
        cin.getline(r[p].fio, 79);
        cout<<Rus("Введите домашний адрес -> ");
        cin.clear();
        _flushall();
        cin.getline(r[p].adr, 79);
        cout<<Rus("Введите группу -> ");
        cin>>r[p].gr;
        cout<<Rus("Введите рейтинг -> ");
        cin>>r[p].rat;
        output.seekp(p * sizeof(s[0]), ios::beg);
        output.setf(ios::left);
                output<<setw(22)<<r[p].fio;
                output<<setw(34)<<r[p].adr;
                output<<setw(7)<<r[p].gr;
                output<<setw(8)<<r[p].rat;
        delete []r;
    }
    if(o==7)
        return;
    }
    delete[]s;
}
char bufRus[256];
char* Rus (const char* text) {
    CharToOem(text, bufRus);
    return bufRus;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2011, 23:39
Привет! Вот еще темы с ответами:

Создать двоичный файл и записать в него 15 чисел - C++
1.создать двоичный файл и записать в него 15 чисел.из исходного файла сформировать массивы чёт. и нечёт. , определить наибольшее чётное и...

Создать файл и записать в него n целых чисел - C++
Создать файл и записать в него n целых чисел. Найти среднее арифметическое среди нечетных чисел, расположенных после минимального значения,...

Создать двоичный файл и записать в него n целых чисел - C++
Первая программа должна сформировать двоичный файл. Вторая – считать данные из этого файла, выполнить соответствующие вычисления...

Создать новый двоичный файл и записать в него матрицу - C++
Доброе утро Всем!Помогите решить задание! На языке СИ в Двоичном файле записанна по строкам матрица 20*20 типа int. Создать новый...


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

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

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