С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 05.12.2013
Сообщений: 81

Что-то не то с выводом сохранённых данных из бинарного файла

11.01.2014, 01:56. Показов 658. Ответов 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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
FILE *file_in;//Óêàçàòåëü íà ôàéë ââîäà
typedef struct
{
char fio[30];
int grade[5];
int YoB,group;
double average_grade;
} TStudent; //TStudent íîâîå èìÿ òèïà(ñòðóêòóðû)
TStudent stud[30]; // Ìàññèâ ñòðóêòóð
char fname[20]; // Èìÿ ôàéëà
int num_stuct=0; // ×èñëî ââåäåííûõ ñòðóêòóð
int menu(); // Ìåíþ
void newnamef(); // Ââåñòè èìÿ ôàéëà
void newf(); // Ñîçäàòü íîâûé ôàéë
void spisok(); // Ââåñòè ñïèñîê
void openf(); // Îòêðûòü ôàéë
void resultcons(); // Âûâåñòè ðåçóëüòàò íà ýêðàí
void resultfile(); // Âûâåñòè ðåçóëüòàò â ôàéë
int main() //MAIN
{
    setlocale(LC_ALL,"Russian");
    while (true)
    {
        switch(menu()) 
        {
        case 1: newnamef(); break;
        case 2: newf(); break;
        case 3: spisok(); break;
        case 4: openf(); break;
        case 5: resultcons(); break;
        case 6: resultfile(); break;
        case 7: return 0;
        default: "Îøèáêà âûáîðà(âûáåðèòå äåéñòâèå îò 1 äî 7)!";
        }       
        puts("Íàæìèòå ëþáóþ êëàâèøó ,÷òîáû ïðîäîëæèòü");
        getch(); system("cls"); 
    }
}
    int menu() // Ìåíþ
    {   
        cout << "Âûáåðèòå:" << endl;
        cout << "1. Ââîä èìåíè ôàéëà" << endl;
        cout << "2. Íîâûé ôàéë" << endl;
        cout << "3. Ââåñòè ñïèñîê" << endl;
        cout << "4. Îòêðûòü ôàéë" << endl;
        cout << "5. Âûâåñòè ðåçóëüòàò" << endl;
        cout << "6. Âûâåñòè â ôàéë" << endl;
        cout << "7. Âûõîä" << endl;
        int i;
        cin >> i;
        return i;
    }      
    void newnamef() // Ââîä èìåíè ôàéëà
    {
    cout << "Ââåäèòå èìÿ ôàéëà " << endl;
    cin >> fname;
    }
    void newf() // Ñîçäàíèå íîâîãî ôàéëà
    {
    if((file_in=fopen(fname,"wb"))==NULL)
        {  
        cout << "Îøèáêà ïðè ñîçäàíèè"<<endl;
        exit(1);
        }
    cout << "OK" << endl;
    fclose(file_in);
    }
    void spisok() // Ââåäåíèå ñïèñêà
    {
        if ((file_in=fopen(fname,"rb+"))==NULL)
        {
        cout << "Îøèáêà ïðè ñîçäàíèè "<<endl;
        exit(1);
        }
    cout << "Ââåäèòå ÷èñëî ñòóäåíòîâ " << endl;
    cin >> num_stuct;
    for (int i=0;i<num_stuct;i++)
    {
        cout << "Ââåäèòå èìÿ: " << endl;
        cin >> stud[i].fio;
        cout << "Ââåäèòå ãîä ðîæäåíèÿ: " << endl;
        cin >> stud[i].YoB;
        cout << "Ââåäèòå íîìåð ãðóïïû: " << endl;
        cin >> stud[i].group;
            cout << "Ââåäèòå ïÿòü(5) îöåíîê: " << endl;
            stud[i].average_grade=0;
            for(int j=0;j<5;j++)
                {
                cin >> stud[i].grade[j];
                stud[i].average_grade+=stud[i].grade[j]/5;
                }
        fwrite(&stud[i],sizeof(TStudent),1,file_in);
    }
    fclose(file_in);
    }
    void openf()// Îòêðûòèå ôàéëà
    {
            if ((file_in=fopen(fname,"rb"))==NULL)
            {
            cout << "Îøèáêà ïðè îòêðûòèè"<<endl;
            exit(1);
            }
        num_stuct=0; TStudent std;
        while(true)
        {
        int nwrt=fread(&std,sizeof(TStudent),1,file_in);
            if(nwrt!=1) break;
        stud[num_stuct]=std;
        cout << stud[num_stuct].fio << " " << stud[num_stuct].grade << endl;
        num_stuct++;
        }
    fclose(file_in);
    }
    void resultcons() // Âûâåñòè ðåçóëüòàò íà ýêðàí
    {
        for(int i=0;i<num_stuct;i++)
        if(stud[i].average_grade<4)
        cout << "Èìÿ: " << stud[i].fio << "\nÃîä ðîæäåíèÿ:" <<stud[i].YoB << 
         "\nÃðóïïà:" << stud[i].group << "\n" <<endl;
    }
    void resultfile() // Âûâåñòè ðåçóëüòàò â ôàéë
    {
    char namet[30];
    FILE *file_out;//Óêàçàòåëü íà ôàéë âûâîäà
    cout << "Ââåäèòå èìÿ ôàéëà" << endl;
    cin >> namet;
        if ((file_out=fopen(namet,"w"))==NULL)
        {
        cout << "Îøèáêà ïðè ñîçäàíèè "<<endl;
        exit(1);
        }
    char s[80];
    for (int i=0; i<num_stuct; i++)
        if (stud[i].average_grade<4)
        {
        strcpy(s,stud[i].fio);
        strcat(s,"\n"); // Äîáàâëåíèå ðàçäåëèòåëÿ ñòðîê
                        //(äîáàâëÿåò ñïðàâà ê ñòðîêå 1 ñîäåðæèìîå ñòðîêè st2)
        fputs(s,file_out);//çàïèñûâàåò ñòðîêó ñèìâîëîâ â òåêóùóþ ïîçèöèþ óêàçàííîãî ôàéëà
        }
    fclose(file_out);
    }
/*Âûâåñòè ñïèñîê ñòóäåíòîâ ñòóäåíòîâ ,
èìåþùèõ íåóäîâëåòâîðèòåëüíóþ îöåíêó (ìåíüøå 4).*/
Миниатюры
Что-то не то с выводом сохранённых данных из бинарного файла  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2014, 01:56
Ответы с готовыми решениями:

Проблема с выводом в консоль бинарного файла
Добрый день! Даны два задания. Первое: Запись структуры данных в бинарный файл и вычисление его размера. Второе: Чтение и вывод в...

Отображение только что сохраненных данных
Я сохрания данные в таблице TBL1 потом чуть ниже с использованием другого Recordset пытаюсь их вывести, но только что сохраненные данные не...

Считывание из бинарного файла в структуру с последующим выводом
В бинарном файле храниться инфа: Имя_пользователя дата_подключения номер Имя_пользователя дата_подключения номер и т.д. Есть...

2
2 / 2 / 1
Регистрация: 05.12.2013
Сообщений: 81
11.01.2014, 01:57  [ТС]
При первом выполнении всё выводит нормально.А если сохранить и запустить по новой выводит вот это.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.01.2014, 08:27
C++
1
cout << stud[num_stuct].fio << " " << stud[num_stuct].grade << endl;
Так массив (grade) из пяти int выводите?
C++
1
cout << stud[num_stuct].grade
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2014, 08:27
Помогаю со студенческими работами здесь

После удаления (перезаписи) данных из бинарного файла, файл всё равно существует, несмотря на то, что он пуст
после удаления(перезаписи) данных из бинарного файла, файл всё равно существует, как сделать так чтобы и файл удалялся если он пустой?

Неразбериха с выводом данных из файла
Программа 1 #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { ...

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

Чтение данных из бинарного файла
Всем добрый день, разбираюсь с чтением бинарных файлов, застрял на том что чтение не производится нужным образом, приведу кусок кода...

Чтение данных из бинарного файла
читаю по while (!stream.eof()), проблема в том что в конце в условие лишний раз заходит, и пытается считать данные, хотя уже файл кончился,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru