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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Двумерный массив. http://www.cyberforum.ru/cpp-beginners/thread228006.html
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам. #include <iostream> #include <time.h> #include <iomanip> const int row = 3; // строки const int column = 3; // столбцы int main() { setlocale(LC_ALL,"Russian");
C++ Слон бьет врагов ??? Приветствую, всех! Кто то скажет опять эти шахматы, сам спекся :wall: когда получил задание. Но дорогие форумчани помогите с задание. Не понимаю даже с чего начать. Набрасал только начало,а дальше в ступоре Задание следующее: Найти возможные способы для удара слоном максимального количества вражеских фигур за N проходов исходя из определенного задаваемого поло-жения вражеских фигур, не... http://www.cyberforum.ru/cpp-beginners/thread228003.html
решите кто может....пляз C++
Разработайте программу для решения следующей задачи: «Моторная лодка движется по течению реки и проходит путь из пункта A в пункт B за t часов. За какое время лодка вернется обратно, если скорость лодки v1 и скорость течения реки v2 известны». Добавлено через 1 минуту формула примерно такая...но у меня не получается... T1 = ((V1 + V2) * t) / (V1 - V2)
C++ Программа, выводящая прописью чётные числа массива.
В синтаксисе ошибок нет. При вводе кол-ва элементов выдаёт: "Необработанное исключение в "0x5561d2f3 (msvcr100d.dll)" в "test5.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcccccccc" и открывается окно кода ассемблера". Вероятно, где-то некорректный или слишком сложный цикл. Или требуется вынести часть кода в вспомогательный класс. Кто может, подскажите пожалуйста. #include <iostream>...
C++ Заполнение массива стуктур http://www.cyberforum.ru/cpp-beginners/thread227969.html
Мне надо ввести в массив структур фамилии и инициалы студентов (с использованием пробелов). Пытаюсь воспользоваться функцией cin.getline, но не получается. Если вводить через cin, то всё норм. Почему так? Вот код // Задание 6.1 Описать структуру с именем STUDENT, содержащую следующие поля: фамилия и инициалы, // номер группы и успеваемость (массив из 5 элементов). Написать программу выполняющие...
C++ Unicode символы Здравствуйте.Каким образом можно вывести на экран символы unicode? подробнее

Показать сообщение отдельно
Настьона
 Аватар для Настьона
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 57
12.01.2011, 23:39  [ТС]     Создать файл и записать в него структурированные данные
Почему?)

Добавлено через 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;
}
 
Текущее время: 16:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru