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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2014, 21:02   #1
MyLifeStyle
Пользователь
 
Регистрация: 29.04.2014
Сообщений: 25
Печаль Удаление из структуры

Добрый вечер!
У меня проблема не могу удалить из структуры.

Добавление и считывание из бинарного файла я сделал.
Удаление не получаеться.
Как я понял необходимо открыть файл на запись, затем записать по новой всех кроме удаляемого.
У меня получился бред.


2 часа искал информацию, так и не смог разобраться.
Помогите с функцией void Remove()

Вот мой код!\


Код:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct Student{
    char Name [20];
    char Surname [20];
    float Age;
};
 
void See();
void Add_new();
void Remove();
 
int main()
{ 
    int c;
    do
    {
system("cls"); 
cout<<" Menu:\n";
cout<<" 1.View data\n";
cout<<" 2.Add new data\n";
cout<<" 3.Remove data\n";
cout<<" 4.Exit\n";
cin>>c;
    switch (c) 
 {
    case 1: 
    system("cls"); 
    See();
    break; 
 
    case 2:
    system("cls"); 
    Add_new();
    break; 
 
    case 3:
    system("cls");
    Remove();
    break; 
  
 system("Pause");
 return 0; 
    }
}
while (c<4); 
cout<<"Bye Bye!";
system("Pause");
return 0;    
}
 
 
void Add_new()
{
cout<<"Enter number of Student> ";
int n;
cin>>n;
Student * Students= new Student[n];
for(int i=0; i<n; i++)
{
cout<<"[Student: "<<i+1<<"] "<<endl;
cout<<"\t1.Name: ";
cin>>Students[i].Name;
cout<<"\t2.Surname ";
cin>>Students[i].Surname;
cout<<"\t3.Age: ";
cin>>Students[i].Age;
}
ofstream fo("Students.txt", ios::app|ios::binary);
if(!fo)
fo.open("Students.txt", ios::out|ios::binary);
for(int i=0; i<n; i++)
fo.write((char*)&Students[i], sizeof(Student));
cout<<"All information has been written in file Students.txt\n\n";
fo.close();
}
void See()
{
ifstream fi("Students.txt", ios::binary);
if(!fi) cout<<"Error with file\n";
else {fi. seekg(0,ios::end);
int size=fi.tellg();
size=size/sizeof(Student);
Student * Students_1= new Student[size];
fi.seekg(0, ios::beg);
fi.read ((char*)Students_1,sizeof(Student)*size);
for(int i=0; i<size; i++)
cout<<"----------------[Student "<<i+1<<"]\n"<<"Name:"<<Students_1[i].Name<<"\nSurname:"<< Students_1[i].Surname<<"\nAge:"<< Students_1[i].Age<<"\n";
}
system("Pause");
 
}
void Remove()
{   
    int del;
    cout<<"Enter the number(remove)\n";
    cin>>del;
    Student * Students= new Student[del];
 
    ofstream fo("Students.txt", ios::app|ios::binary);
if(!fo)
fo.open("Students.txt", ios::out|ios::binary);
for(int i=0; i<del; i++)
    if(i!=del)
fo.write((char*)&Students[i], sizeof(Student));
cout<<"All information has been written in file Students.txt\n\n";
fo.close();
 
}
MyLifeStyle вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление записи из структуры при нажатие клавиши 2 asv1994 Помощь студентам 0 29.05.2013 20:18
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Удаление структуры из файла Стремящийся Общие вопросы C/C++ 14 11.08.2012 13:29
Удаление структуры из файла Axrik Общие вопросы C/C++ 1 09.06.2012 11:20
Удаление(добавление) поля из(в) структуры kilgoreq Помощь студентам 0 22.02.2011 00:59