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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2012, 19:48   #1
Regilios
Новичок
Джуниор
 
Регистрация: 19.06.2012
Сообщений: 1
Вопрос Запись в файл С++

  • Здравствуйте я студент 1 курса, учусь на программиста при написании программы столкнулся с проблемой записи элементов двусвзяного списка в файл. Проблема возникла в связи с тем что я не до конца понимаю каким образом передать значения полученные пользователем и положенными в структуру в файл. Я догадываюсь что проблема связана с указателями т.к. "иероглифы" он записывает а вот считать не может, скорее всего указывает не на тот объект. Нужна помощь только с файлами, если вы видите что программа и написано не слишком красиво - пожалст не ругайте) я сам писал, мне нравиться так, если и криво) вырезал кусочки программы чтобы влезло на форум - не обращайте внимания если есть пустоты
    писал в VB 2010
    Код:
    #include "stdafx.h"
    #include <iostream>
    #include <math.h>
    #include <conio.h>
    #include <string>
    #include <windows.h>
    #include <fstream>
    using namespace std;
    struct SP
    {
    string  tip;
    string  sp;
    string  name;
    string  fio;
    string  dop;
    string dopolnenie;
    string god;
    string koll; 
    string Shtrikh;
    string system1;
    string system2;
    string system3;
    string system4;
    SP* next;
    SP* prev;
    };
    class elementspiska
    {
    private:
    SP* top;
    SP* nachalo;
    public:
    elementspiska()
    {nachalo=NULL, top=NULL;}
    void dobav(string d, string n, string f, string t,  string g, string K, string sh, string dop,string w1,string 
    w2,string w3,string w4);
    void vivod();
    void File();
    void File2();
    void ProVivod();
    };
    void elementspiska::dobav(string d, string n, string f, string t, string g, string K, string sh, string dop, 
    string w1,string w2,string w3,string w4)
    {
    SP* newSP = new SP;
    newSP->sp=d;
    newSP->name=n;
    newSP->fio=f;
    newSP->tip=t;
    newSP->dopolnenie=dop;
    newSP->god=g;          
    newSP->koll=K;                
    newSP->Shtrikh=sh;  
    newSP->system1=w1;
    newSP->system2=w1;
    newSP->system3=w1;
    newSP->system4=w1;
    newSP->next = NULL;
    if(nachalo!=NULL)
    {
    top->next=newSP;
    top = newSP;
    }
    else
    {
    nachalo=top=newSP;
    }
    }
    void elementspiska::vivod()
    {
    SP* display = nachalo;
    while(display)
    {
    cout<<"Тип: "<<display->tip<<endl;
    cout<<"Название: "<<display->sp<<endl;
    cout<<"Версия: "<<display->name<<endl;
    cout<<endl;
    display=display->next;
    }
    }
    void elementspiska::File()
    {
    elementspiska el;
    string d,n,f,t,g,K,sh,dop,w1,w2,w3,w4;
    el.dobav(d,n,f,t,g,K,sh,dop,w1,w2,w3,w4);
    ofstream outfile("Fdata.txt", ios::binary/*ios::app|ios::out*/);
    outfile.write(reinterpret_cast<char*>(&el),sizeof(el));
    outfile.close();
    cout<<"Файл записан";
    }
    void elementspiska::File2()
    {elementspiska el;
    ifstream infile("Fdata.txt",ios::binary/* ios::in|ios::ate*/);
    infile.read(reinterpret_cast<char*>(&el),sizeof(el));
    el.vivod();
    }
    string d,n,f,t,g,K,sh,dop,w1,w2,w3,w4;
    int vb,svb,rvb,gvb,hvb,i;
    bool flag, flags;
    int _tmain(int argc, _TCHAR* argv[])
    {
     elementspiska el;
     SetConsoleCP(1251);//Для ввода русских букв
     SetConsoleOutputCP(1251);//Для вывода русских букв
    do
    {
    flag=0;
    cout<<endl;
    cout<<"Выберите действие: "<<endl;
    cout<<"Ввод новой игры 1: "<<endl;
    cout<<"Вывести данные 2: "<<endl;
    cout<<"Удаление последовательно 4: "<<endl;
    cout<<"Выход из программы 7: "<<endl;
    cout<<"Справка 8: "<<endl;
    cout<<"Запись в файл 9: "<<endl;
    cout<<"Считать из файла 10: "<<endl;
    cin>>vb; 
    switch(vb)
    { 
    case 1:
    cout<<endl;
    cout<<"Выберете тип игры "<<endl;
    cout<<"RPG 1:"<<endl;
    cout<<"RTS 2:"<<endl;
    cout<<"FPS 3:"<<endl;
    cout<<"TPS 4:"<<endl;
    cout<<"MMORPG 5:"<<endl;
     cout<<"Вернуться 6:"<<endl; 
     cin>>svb;	  
    if (svb==6)
    break;
    if (svb==1)
    t="RPG";
    if (svb==2)
    t="RTS";
    if (svb==3)
    t="FPS";
    if (svb==4)
    t="TPS";
    if (svb==5)
    t="MMROGS";
    cout<<endl;
    cout<<"тип "<<t<<endl;
    cout<<"Название: ";cin>>d;
    cout<<"Версия: ";cin>>n;
    cout<<"Язык: ";cin>>f;
    cout<<endl;
    cout<<"возрастное ограничение "<<endl;
    cout<<"от 3 до 6"<<endl;
    cout<<"от 6 до 10"<<endl;
    cout<<"от 10 до 13"<<endl;
    cout<<"от 13 до 17"<<endl;
    cout<<"с 18 "<<endl;
    cout<<"Вернуться"<<endl;
    cin>>rvb;
    if (rvb==6)
    break;
    if (rvb==1)
    dop="от 3 до 6";
    if (rvb==2)
    dop="от 6 до 10";
    if (rvb==3)
    dop="от 10 до 13";
    if (rvb==4)
    dop="от 13 до 17";
    if (rvb==5)
    dop="с 18 ";
    cout<<"Раздел дополнительных данных"<<t<<endl;
    cout<<"игра по сети 1 -да/2-нет";
    cin>>gvb;
    if (gvb==3)
    break;
    if (gvb==1)
    g="Присутствует";
    if (gvb==2)
    g="Отсутствует";
    cout<<"Изготовитель: ";cin>>K;
    cout<<" Минимальные системные требования для "<<d<<endl;
    cout<<"OS: ";cin>>w1;
    cout<<"Процессор: ";cin>>w2;
    cout<<"Память: ";cin>>w3;
    cout<<"Видеокарта: ";cin>>w4;
    cout<<"Наличе лицензионной этикетки 1 -да/2-нет:(3 - назад) ";
    cin>>hvb;
    if (hvb==3)
    break;
    if (hvb==1)
    sh=" Присутствует";
    if (hvb==2)
    sh=" Отсутствует";
    el.dobav(d,n,f,t,g,K,sh,dop,w1,w2,w3,w4);
    flags=1; 
    break;
    case 2:
    el.vivod();
    break;
    case 7:
    flag=1;
    exit;
    break;
    case 9:
    el.File();
    break;
    case 10:
    el.File2();
    break;
    default:
    cout<<"Непредусмотренный символ"<<endl;
    break;
    }
    }
    while(flag!=1);
    return 0;
    }
Regilios вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл Aelon Общие вопросы C/C++ 2 29.05.2012 11:51
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
Запись в файл Evacuator C++ Builder 0 07.05.2011 20:35
Запись в файл soonner Общие вопросы Delphi 5 21.03.2009 01:12