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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2012, 00:27   #1
Anthoni
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 10
Вопрос Чтения адреса из файла и запись в указательную переменную

Есть Класс:
Код:
class Zakaz
{
public:	
	vector<Goods> *myGoods;		//Ссылка на список товаров	
	tm *timeinfo;				//Дата заказа
	string *user;				//Ссылка на пользователя
	string name[10];			//имя заказаного товара
	float sum;					//сума заказа
	int num;					//количество типов товаров
	int kol[10];					//количество заказаного товара
	int err;
}
Я его записываю в файл:
Код:
ofstream obj("file.txt",ios::out);
obj<<vZakaz.size()<<endl;
for(int i=0;i<vZakaz.size();i++)
{
obj<<vZakaz[i].myGoods<<endl;
obj<<vZakaz[i].timeinfo<<endl;
obj<<vZakaz[i].user<<endl;
obj<<vZakaz[i].sum<<endl;
obj<<vZakaz[i].err<<endl;
obj<<vZakaz[i].num<<endl;
for (int j=0;j<10;j++)
{
	obj<<vZakaz[i].name[j]<<endl;
	obj<<vZakaz[i].kol[j]<<endl;
}
obj<<"@Next"<<endl;
}
И потом считываю обратно в этот класс
Код:
ifstream objfrom("file.txt",ios::in);
objfrom.seekg(0,ios::beg);
if (temp!="0")
{
do
{
	if (temp!="@Stop")
	{
		j=0;
		vZakaz.push_back(Zakaz());
		vZakaz[i].myGoods=temp;getline(objfrom, temp);
		vZakaz[i].timeinfo=temp;getline(objfrom, temp);
		vZakaz[i].user=temp;getline(objfrom, temp);
		vZakaz[i].sum=atof(temp.c_str());getline(objfrom, temp);
		vZakaz[i].err=atoi(temp.c_str());getline(objfrom, temp);
		vZakaz[i].num=atoi(temp.c_str());getline(objfrom, temp);
		do
		{
			if (temp!="@Next")
			{
				vZakaz[i].name[j]=temp;getline(objfrom, temp);
				vZakaz[i].kol[j]=atoi(temp.c_str());getline(objfrom, temp);
				j++;
			}
		}
		while(temp!="@Next");
		i++;
	}
}
while(temp!="@Stop");
}
else getline(objfrom, temp);
Вопрос вот в чем. Когда я записывал в файл, у меня записывали адреса. Но когда считываю, не могу их считать. Как-то можно указать, что я считываю с файла именно адреса?

Последний раз редактировалось Anthoni; 04.12.2012 в 00:30.
Anthoni вне форума Ответить с цитированием
Старый 04.12.2012, 00:29   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы думаете по тем адресам чтото будет?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.12.2012, 00:32   #3
Anthoni
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 10
По умолчанию

Понял свою ошибку)

Последний раз редактировалось Anthoni; 04.12.2012 в 00:36.
Anthoni вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарные файлы (запись/чтения больше одной записи) JoberLord Общие вопросы C/C++ 4 27.08.2012 18:49
Запись в переменную из ini файла Auron Общие вопросы Delphi 2 24.07.2012 12:30
СИ запись файла в массив, каждую строку передать в переменную sasha502 Помощь студентам 4 20.10.2011 15:21
Ошибка чтения из файла в переменную типа integer Max1548 Общие вопросы Delphi 2 12.10.2011 12:34
Запись из файла в переменную Sekt Общие вопросы C/C++ 1 20.10.2009 13:02