Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Файлы: ввод - вывод
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
chagin_yav
(visual c++ win32 console application)
Приветствую!

Столкнулся с проблемой:

Создал некий класс.
Информационные поля экземпляра класса (строки - string) вводятся с клавиатуры.
Для этого используется ссылка "link" на экземпляр класса
После этого данные поля записываются файл - это не составило труда:

...
 cout << "\n Введите данные \n"
        << "\n Line 1:";
cin >> link->line_1;
cout << line 2:";
cin >>>link->line_2;

...
Далее запись в файл
...
 fstream file("Data.dat",ios_base::out|ios_base::app);
file<<link->line_1<<endl;
file<<link->line_2<<endl;


Проблема со чтением файла:
хотелось бы считывать построчно данные файла аналогично записи в файл
т.е. записываем "file<<link->line_1", а считываем как-нибудь так "file.getline(link->line_1,'/n');
- понятно что пример с записью - чушь, мне синтаксис не важен, а именно
нужно передавать считанную из файла строку в компонентное поле класса типа
string посредством указателя на это поле link->string;

...
С буфером - массив типа char всё выходит - то есть
...
 char buf[size];
fstream file("Data.dat",ios_base::in);
file.getline(buf,size,'/n');

...
Но тогда у меня не выходит передать массив char в строку string через указатель на неё.

Подскажите, пожалуйста.
- либо считать строку из файла в комп. поле объекта класса типа string через указатель на это поле
- либо считать строку в буффер - массив char и передать его в комп. поле объекта класса типа string через указатель на это поле.

Заранее благодарен
С уважением chagin_yav
Dimmuborgir
Может я недопонял проблемму, но запись
getline(fille,link->line_1,'\n')
означает буквально то чего вы и желаете: считает из файла строку и запишет ее в переменную line_1, того объекта, на который ссылается link. Хотя на мой взгляд лучше сделать отдельный метод чтения данных для объекта.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.