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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2014, 14:47   #1
Uefa
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 59
Восклицание запись в файл (Си++)

Здравствуйте! Возникли проблемы при написании курсовой работы, а именно с сохранением/загрузкой данных в/из файла.
Кусок кода:
Код:
void Load (vector<actor> &vec, vector<spectakl> &spis_spectakl)
{
	int w, z;
	actor X;
	spectakl Z;
	FILE *in;    
	in = fopen ("actor.dat", "r");      
	fread (&w, sizeof(int), 1, in);
	for (int i=0; i<w; i++)
	{
		fread (&X, sizeof(actor), 1, in);  
		vec.push_back(X);
	}
	fclose(in);

	FILE *ins;
	ins = fopen ("spectakl.dat", "r");
	fread (&z, sizeof(int), 1, ins);
	for (int i=0; i<z; i++)
	{
		fread (&Z, sizeof(spectakl), 1, ins);
		spis_spectakl.push_back(Z);
	}
	fclose (ins); 
}
void Save (vector<actor> &vec, vector<spectakl> &spis_spectakl)
{
	int w = vec.size();
	int z = spis_spectakl.size();
	FILE *in; 
	in = fopen ("actor.dat", "w");      
	fwrite (&w, sizeof(int), 1, in);
	for (int i=0; i<vec.size(); i++)
	{
		fwrite (&vec[i], sizeof(actor), 1, in);  
	}
	fclose(in);
	
	FILE *ins;
	ins = fopen ("spectakl.dat", "w");
	fwrite (&z, sizeof(int), 1, ins);
	for (int i=0; i<spis_spectakl.size(); i++)
	{
		fwrite (&spis_spectakl[i], sizeof(spectakl), 1, ins);  
	}
	fclose(ins);
}
Это две функции, отвечающие за сохранение и загрузку данных. Все данные (объекты классов actor и spectakl) хранятся в векторах (STL). В итоге есть два вектора, которые и нужно сохранить в файл, а потом, при новом запуске программы, загрузить из файла. Когда сохраняются только актеры (либо только спектакли), т.е. обьекты только одного класса из двух, сохранение и загрузка происходят успешно. В случае, когда сохраняю и актеров и спектакли, при загрузке данных программа виснет и прекращает работу. Где я допустил ошибку?
п.с. весь код программы состоит из 650 строк, поэтому написал только 2 функции

Последний раз редактировалось Uefa; 07.01.2014 в 14:49.
Uefa вне форума Ответить с цитированием
Старый 09.01.2014, 16:18   #2
Uefa
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 59
По умолчанию

Проблема актуальна
Uefa вне форума Ответить с цитированием
Старый 10.01.2014, 06:49   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Исходник в виде файла есть возможность приложить?
Проблема явно таится в чем-то другом... (ведь данные в файлах корректны на всех этапах?)

Последний раз редактировалось Базиля; 10.01.2014 в 06:53.
Базиля вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись информации в файл в файл Anubys Win Api 0 04.11.2011 23:27
запись в файл gamer123 Паскаль, Turbo Pascal, PascalABC.NET 6 09.06.2010 08:25
Запись в файл. Baaandit Общие вопросы Delphi 4 27.11.2009 16:49
запись в файл Prisian Общие вопросы Delphi 6 24.07.2007 13:43