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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 18:02   #1
sawyer1988
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 36
По умолчанию вектор не хочет записываться в файл

Всем привет!
В проге сначала в файл записываются строки, потом они записываются в
объект, а объекты в вектор.В конце проги проблема при записи вектора в файл-при совпадении введённой строки с объектом вектора,эта строка удаляется, а вектор переписывается в файл. Но на последнем этапе происходит ошибка и прога закрывается . Помогите пожалуйста её исправить.

Код:
void main(void)

{

vector<base>v;

setlocale(LC_ALL, "rus");
 //Добавление в файл
cout<<"введите строку один"<<endl;
char*y=new char[20];
cin.getline(y,20);
cout<<"введите строку два"<<endl;
char*x=new char[20];
cin.getline(x,20);

ofstream j("test.txt",ios::out|ios_base::app);
j<<y<<endl;
j<<x<<endl;
j.close();
char*u=new char[20];
cout<<"введите строку один для поиска"<<endl;
cin.getline(u,20);



char *o=new char[20];
char *i=new char[20];

ifstream f("test.txt");
while(!f.eof())
{ 
	
    f.getline(o,20);
	f.getline(i,20);
	base ob1(o,i);
	if(f.eof())break;
	v.push_back(ob1);
	cout<<ob1<<endl;
	cout<<"текущий размер "<<v.size()<<endl;
	
}

cout<<endl;
cout<<"новый размер вектора: "<<v.size()<<endl;

//ПОИСК
bool h=false;
    for(int i=0;i<v.size();i++)
{
     if(!strcmp(u,v[i].st))
  
    {
   cout<<endl;
   cout<<v[i]<<" "<<endl;
   h=true;
  }
    }
cout<<endl;
cout<<"список:"<<endl;
cout<<endl;


    for(int i=0;i<v.size();i++)
    cout<<v[i]<<endl;


    //-----------Удаление---------------
 int e;
 char*m=new char[20];
 cout<<"введите строку для удаления"<<endl;
  cin.getline(m,20);


e=v.size();


for(int i=0;i<e;i++)
{
    if(!strcmp(v[i].str,m))
 {
	 ofstream d("test.txt",ios_base::trunc);
	 


	
	 for(int j=i;j<e;j++)
	 {  
	   e--;
	   v[j]=v[j+1];
	   i--;
	 } 
	 
	 
  	d.close();
 }
   }

	        ofstream s("test.txt",ios_base::app);
	for(int p=0;p<e;p++)
{  
	s<<v[p]<<endl;
}



getchar();

}

Последний раз редактировалось ACE Valery; 24.04.2012 в 20:35.
sawyer1988 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вектор в с++ AT-19 Фриланс 6 18.04.2012 19:31
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? Ник Харди Microsoft Office Excel 7 30.01.2012 18:47
Вектор Pro_RocK Паскаль, Turbo Pascal, PascalABC.NET 1 11.06.2010 09:21
ActiveX не хочет читать большой файл Miklek Общие вопросы Delphi 0 02.04.2009 11:55