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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2012, 06:37   #1
ENVISION
 
Регистрация: 08.04.2012
Сообщений: 5
Восклицание Сохранить структуру в файл

Имеется таблица в виде структуры. Необходимо предоставить возможность сохранения таблицы в файл и чтение её из файла.
(используя операторы fopen, fread, fwrite). Помогите разобраться, буду очень признателен.

Код:
#include<iostream>
#include<iomanip>
#include<windows.h>
#include<stdio.h>
#include<errno.h>
using namespace std;
struct tab {
char nazv[15], gruppa[10], mesto[15];
int chislo;};
    
int main(){

tab tab1[4];    
for(int i=0; i<2; ++i){
cout<<"Nazvanie ";        
cin>>tab1[i].nazv;
cout<<"Gruppa ";
cin>>tab1[i].gruppa;
cout<<"Mesto obitaniya ";
cin>>tab1[i].mesto;
cout<<"Chislennost ";
cin>>tab1[i].chislo;}
cout<<endl<<"|----------------------------------------------------------------|"<<endl;
cout<<"|"<<setw(64)<<"Nekotorie vidi antilop                         "<<"|"<<endl;
cout<<"|----------------------------------------------------------------|"<<endl;
cout<<"|"<<setw(15)<<"Nazvanie"<<"|"<<setw(10)<<"Gruppa"<<"|"<<setw(15)<<"Mesto obitaniy"<<"|"<<setw(21)<<"4islennost' populacii"<<"|"<<endl;
cout<<"|----------------------------------------------------------------|"<<endl;
for(int i=0; i<2; ++i)
cout<<"|"<<setw(15)<<tab1[i].nazv<<"|"<<setw(10)<<tab1[i].gruppa<<"|"<<setw(15)<<tab1[i].mesto<<"|"<<setw(21)<<tab1[i].chislo<<"|"<<endl;
cout<<"|----------------------------------------------------------------|"<<endl;

cin.get();
cin.get();    
return 0;
}

Последний раз редактировалось Stilet; 08.04.2012 в 10:08.
ENVISION вне форума Ответить с цитированием
Старый 08.04.2012, 10:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

вот пример:http://www.programmersforum.ru/showthread.php?t=105501
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2012, 01:51   #3
ENVISION
 
Регистрация: 08.04.2012
Сообщений: 5
По умолчанию

Стоит задача предоставить возможность сохранения и чтения из файла при помощи операторов fwrite, fread.
ENVISION вне форума Ответить с цитированием
Старый 09.04.2012, 02:10   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Код:
#include<iostream>
#include<iomanip>
#include<windows.h>
#include<stdio.h>
#include<errno.h>
using namespace std;
struct tab
{
    char nazv[15], gruppa[10], mesto[15];
    int chislo;
};

int main()
{
    tab tab1[4];
    FILE * pFile;
    char c;
    cout<<"Load data from file?(y/n) ";
    cin>>c;
    if (c=='y')
    {
        pFile = fopen ( "myfile.bin" , "rb" );
        fread (tab1,2,sizeof(tab),pFile);
        fclose (pFile);
    }
    else
        for(int i=0; i<2; ++i)
        {
            cout<<"Nazvanie ";
            cin>>tab1[i].nazv;
            cout<<"Gruppa ";
            cin>>tab1[i].gruppa;
            cout<<"Mesto obitaniya ";
            cin>>tab1[i].mesto;
            cout<<"Chislennost ";
            cin>>tab1[i].chislo;
        }
    cout<<endl<<"|----------------------------------------------------------------|"<<endl;
    cout<<"|"<<setw(64)<<"Nekotorie vidi antilop                         "<<"|"<<endl;
    cout<<"|----------------------------------------------------------------|"<<endl;
    cout<<"|"<<setw(15)<<"Nazvanie"<<"|"<<setw(10)<<"Gruppa"<<"|"<<setw(15)<<"Mesto obitaniy"<<"|"<<setw(21)<<"4islennost' populacii"<<"|"<<endl;
    cout<<"|----------------------------------------------------------------|"<<endl;
    for(int i=0; i<2; ++i)
        cout<<"|"<<setw(15)<<tab1[i].nazv<<"|"<<setw(10)<<tab1[i].gruppa<<"|"<<setw(15)<<tab1[i].mesto<<"|"<<setw(21)<<tab1[i].chislo<<"|"<<endl;
    cout<<"|----------------------------------------------------------------|"<<endl;

    cin.get();
    cin.get();

    pFile = fopen ( "myfile.bin" , "wb" );
    fwrite (tab1 , 2 , sizeof(tab) , pFile );
    fclose (pFile);

    return 0;
}
Сначала запустите и введите n.
Только после этого можно будет вызвать программу и напечатать y.
(при первом запуске будет сохранена в файл таблица)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как записать структуру в файл?C# Serg94 Помощь студентам 1 03.04.2012 00:47
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? Ник Харди Microsoft Office Excel 7 30.01.2012 18:47
Как записать структуру в файл? и прочитать потом. katushka-1990 Общие вопросы C/C++ 2 23.03.2010 10:07
Записать структуру в файл iLLUMIN Общие вопросы C/C++ 10 28.02.2010 23:57