Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2018, 10:23   #1
dauntupoy
 
Регистрация: 03.01.2018
Сообщений: 5
По умолчанию Файл, происходит запись не той информации

Господа здравствуйте, в файл записывается начальная информация, как сделать так, чтобы записывалась конечная?
Код:
#include <iostream>
#include <conio.h>
#include<fstream>
using namespace std;
 
struct students {
    char fio[30];
    int ОАиП,САОД,СПО;
    float middle;
};
 
void main()
{
    setlocale(LC_ALL,"RUS");
    int size = 15, n;
    students* student = new students[size];
    strcpy(student[1].fio, "Ерачин Сергей Георгиевич");
    student[1].ОАиП = 7;
    student[1].САОД = 6;
    student[1].СПО = 5;
    student[1].middle = (student[1].ОАиП + student[1].САОД + student[1].СПО) / 3.;
    
    strcpy(student[2].fio, "Трикулова Ольга Александровна");
    student[2].ОАиП = 8;
    student[2].САОД = 3;
    student[2].СПО= 7;
    student[2].middle = (student[2].ОАиП + student[2].САОД + student[2].СПО) / 3.;
    
    strcpy(student[3].fio, "Меланчук Владислав Витальевич");
    student[3].ОАиП = 4;
    student[3].САОД = 3;
    student[3].СПО = 8;
    student[3].middle = (student[3].ОАиП + student[3].САОД + student[3].СПО) / 3.;
 
    strcpy(student[4].fio, "Юрлодашова Дарья Дмитриевна");
    student[4].ОАиП = 7;
    student[4].САОД = 6;
    student[4].СПО = 4;
    student[4].middle = (student[4].ОАиП + student[4].САОД + student[4].СПО) / 3.;
    
    strcpy(student[5].fio, "Подтикан Дмитрий Алексеевич");
    student[5].ОАиП = 9;
    student[5].САОД = 3;
    student[5].СПО = 4;
    student[5].middle = (student[5].ОАиП + student[5].САОД + student[5].СПО) / 3.;
    
    strcpy(student[6].fio, "Дворцов Александр Викторович");
    student[6].ОАиП = 6;
    student[6].САОД = 3;
    student[6].СПО = 8;
    student[6].middle = (student[6].ОАиП + student[6].САОД + student[6].СПО) / 3.;
    
    strcpy(student[7].fio, "Розсадук Елена Георгиевна");
    student[7].ОАиП = 5;
    student[7].САОД = 7;
    student[7].СПО = 9;
    student[7].middle = (student[7].ОАиП + student[7].САОД + student[7].СПО) / 3.;
    
    strcpy(student[8].fio, "Абалмасов Дмитрий Максимович");
    student[8].ОАиП = 4;
    student[8].САОД = 6;
    student[8].СПО = 5;
    student[8].middle = (student[8].ОАиП + student[8].САОД + student[8].СПО) / 3.;
    
    strcpy(student[9].fio, "Миллер Георгий Романович");
    student[9].ОАиП = 8;
    student[9].САОД = 3;
    student[9].СПО = 4;
    student[9].middle = (student[9].ОАиП + student[9].САОД + student[9].СПО) / 3.;
    
    strcpy(student[10].fio, "Нояновский Степан Андреевич");
    student[10].ОАиП = 5;
    student[10].САОД = 4;
    student[10].СПО = 9;
    student[10].middle = (student[10].ОАиП + student[10].САОД + student[10].СПО) / 3.;
    
    strcpy(student[11].fio, "Помбалист Денис Романович");
    student[11].ОАиП = 6;
    student[11].САОД = 6;
    student[11].СПО = 5;
    student[11].middle = (student[11].ОАиП + student[11].САОД + student[11].СПО) / 3.;
    
    strcpy(student[12].fio, "Дубинецкий Валерий Николаевич");
    student[12].ОАиП = 5;
    student[12].САОД = 3;
    student[12].СПО = 7;
    student[12].middle = (student[12].ОАиП + student[12].САОД + student[12].СПО) / 3.;
    
    ofstream out("E://25.txt", ios::binary | ios::out);
 
 for (int i = 0; i < 12; i++)
 
    {
        out.write((char*)&student[i], sizeof student[i]);
    }
    out.close();
 
    ifstream in("E://25.txt", ios::binary | ios::in);
 for (int i = 0; i < 12; i++)
   
    {
        in.read((char*)&student[i], sizeof student[i]);
    }
    in.close();
 
    students temp;
    for (int i = 0; i < size; i++) {
        for (int j = size - 1; j > i; j--) {
            if (student[j - 1].middle < student[j].middle) {
                temp = student[j - 1];
                student[j - 1] = student[j];
                student[j] = temp;
            }
        }
    }
    cout << "Список учеников и их отметок по убыванию среднего балла:"<<endl;
    for (int i = 0; i < 12; i++) {
        cout << student[i].fio << "\t";
        cout << student[i].middle << "\t";
        cout << "\n";
    }
    system("pause");
}

Последний раз редактировалось Аватар; 29.03.2018 в 10:31.
dauntupoy вне форума Ответить с цитированием
Старый 29.03.2018, 10:32   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Включить чуть-чуть голову и записывать после выполнения всех необходимых действий.
p51x вне форума Ответить с цитированием
Старый 29.03.2018, 10:40   #3
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

епт...а оно че, название переменных по русски понимает? 8-0
alexzk вне форума Ответить с цитированием
Старый 29.03.2018, 10:56   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Дык, давно.
p51x вне форума Ответить с цитированием
Старый 29.03.2018, 12:33   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Товарищ, даунтупой. Определитесь у вас индексация в массиве начинается с нуля или с единицы. если записывается элемент с индексом 12, то цикл с условием "i < 12" дойдёт до этого элемента или нет? Может там нужно поставить <=, например...
pu4koff вне форума Ответить с цитированием
Старый 29.03.2018, 15:13   #6
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
епт...а оно че, название переменных по русски понимает? 8-0
Да, только если будут проблемы с кодировками, это твоя проблема 8-)
Ну, или того индуса, который взялся поддерживать код русского.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не происходит запись в файл? RaccoonRocket Помощь студентам 3 06.06.2015 13:18
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
Чтение и запись некоторой части информации в файл DBF из Excel fired Microsoft Office Excel 4 19.08.2010 03:28
Запись в один файл большого количества информации pregmatch Общие вопросы C/C++ 5 09.03.2009 14:09
ввод информации с клавиутуры в двумерный масив, запись информации с масива в файл x_omega_x Помощь студентам 1 29.12.2008 02:30