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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 14:12   #1
artemi
 
Регистрация: 17.05.2010
Сообщений: 6
По умолчанию загрузка из файла в вектор

не получается загрузить из файла в вектор
после загрузки при просмотре вектора, в векторе набор цифр
вот мой код:
Код:
#include <iostream>
#include <iterator>
#include <conio.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <vector>
#include <numeric>

using namespace std;



struct Perech
{int nomer;
string outpunkt;
string inpunkt;
int h,min;
int cost;
int mest;
       };



class vokzal
{
 private:
   std::vector<Perech> v;
   Perech *px;
   int n;

 public:
   vokzal(){n=0;px=NULL;}
  ~vokzal(){n=0;if(px!=NULL)delete[]px;}
   void newBD();
   void output();
   void outputFile();
   void inputfile();

  };

void vokzal::outputFile()  //сохранение БД в файл
{std::ofstream fout;
 char file[20]; //переменная для названия файла
 int i; //рабочая переменная для подсчёта
 if (v.size() == 0){cout<<"Massiv pust\n";getch();return;}
 cout<<"Vvedite fail dlya sohraneniya: ";cin>>file;
 fout.open(file,ios::out|ios::trunc);
 try{
 if(fout.fail()){cout<<file<<" Ne sozdan\n";getch();n=0;px=NULL;return;}
//запись БД в файл
 for( size_t i=0;i< v.size();i++)
    {fout.setf(ios::left);
 fout<<setw(6)<<v[i].nomer<<setw(12)<<v[i].outpunkt<<setw(11)<<v[i].inpunkt
 <<setw(3)<<v[i].h<<setw(4)<<v[i].min<<setw(17)<<v[i].mest<<setw(8)<<v[i].cost<<endl;
 }
 cout<<"Baza dannuih sohranena\n";getch();
}
 catch(...)

{
       cout<<"Error";
       getch();
        }
    }

void vokzal::newBD()
{
  int i;
  clrscr();
cout<<"Kolichestvo zapisey=";cin>>n;
 if(px!=NULL)delete[] px;
  px=new Perech[n];
 try{
  if(px==NULL){cout<<"Net pamyati\n";getch();n=0;return;}
  for(i=0;i<n;i++)
 {cout<<"Nomer avtobusa:";cin>>px[i].nomer;
  cout<<"Punkt otpravleniya: ";cin>>px[i].outpunkt;
  cout<<"Punkt naznacheniya: ";cin>>px[i].inpunkt;
  cout<<"Vremya otpravleniya: ";cin>>px[i].h>>px[i].min;
   cout<<"Stoimost bileta: ";cin>>px[i].cost;
  cout<<"Kolichestvo mest: ";cin>>px[i].mest;
  cout<<endl;
  v.push_back(px[i]);
 }

 cout<<"Baza dannuih sozdana"<<endl;getch();
 }
  catch(...)

{
       cout<<"Error";
       getch();
        }

}




void vokzal::output(){
  if (v.size()==0){cout<<"    "<<"V baze dannuih net zapisey\n";getch();return;}
  clrscr();
 cout.setf(ios::left);
 cout<<endl<<"Baza dannuih 'Avtovokzal'\n"<<endl;
 cout<<"N"<<" "<<setw(6)<<"Nomer"<<setw(12)<<"Otpravlenie"<<setw(11)<<"Pribuitie"
 <<setw(7)<<"Vremya"<<setw(17)<<"kolichestvo mest"<<setw(8)<<"Stoimost"<<endl;
  for (size_t i = 0; i < v.size(); i++){
  {cout.setf(ios::left); i++;
 cout<<setw(3)<<i<<setw(6)<<v[i-1].nomer<<setw(12)<<v[i-1].outpunkt<<setw(11)<<v[i-1].inpunkt
  <<setw(1)<<v[i-1].h<<":"<<setw(3)<<v[i-1].min<<setw(17)<<v[i-1].mest<<setw(8)<<v[i-1].cost<<endl;
i--; }

 }
    getch();
  }




void vokzal::inputfile()  //ввод БД из файла
{
int i;      //рабочая переменная для подсчёта
 Perech t;  //рабочая переменная для подсчёта записей в файле
 char file[10]; //переменная для названия файла
 if(px!=NULL){delete[]px;n=0;px=NULL;}  //очистка рабочей области(массива)
 cout<<"Imya vhodnogo faila: ";cin>>file;
ifstream  fin;
 fin.open(file,ios::in|ios::out);
  if(!fin.eof())
 do{fin>>t.nomer>>t.outpunkt>>t.inpunkt>>t.h>>t.min>>t.mest>>t.cost;
  n++;
   } while(fin.good()); //пока файл не закончился
n--;
  px=new Perech[n]; //выделение динамической памти
    //ввод массива задолжников из файла
for(i=0;i<n;i++)
 {fin>>px[i].nomer>>px[i].outpunkt>>px[i].inpunkt>>px[i].h>>px[i].min>>px[i].mest>>px[i].cost;
  v.push_back(px[i]);}
  fin.close();
}





int main(){
 vokzal a;
 char g;
 do{
    clrscr();
     cout<<"          "<<"Meny kassy avtovokzal\n";
     cout<<"        "<<"1 - New raspisanie avtobusov\n";
     cout<<"        "<<"2 - Save raspisanie v fail\n";
     cout<<"        "<<"3 - load raspisanie iz faila\n";
     cout<<"        "<<"4 - Prosmotr raspisaniy\n";
     cout<<"        "<<"E - Exit \n";
     cout<<"   "<<"Viberete punkt menu\n";
     cin>>g;
  switch(g){
  case '1':a.newBD();break;
    case '2':a.outputFile();break;
  case '3':a.inputfile();break;
    case '4':a.output();break;
 }
 }while(g!='E');
 return 0;
 }
artemi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка файла?! Mr.Qwerty Общие вопросы Delphi 1 10.09.2009 21:28
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid lightdevil Общие вопросы Delphi 3 06.03.2009 23:10
загрузка из файла RAVAL)) Общие вопросы Delphi 2 04.03.2009 12:48
Загрузка Файла Volkogriz Общие вопросы Delphi 3 31.10.2007 21:14
Загрузка файла AVer Работа с сетью в Delphi 0 11.02.2007 17:22