Файлы: ввод - вывод

  • Автор темы chagin_yav
  • Дата начала
C

chagin_yav

#1
(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
 
D

Dimmuborgir

#2
Может я недопонял проблемму, но запись
Код:
getline(fille,link->line_1,'\n')
означает буквально то чего вы и желаете: считает из файла строку и запишет ее в переменную line_1, того объекта, на который ссылается link. Хотя на мой взгляд лучше сделать отдельный метод чтения данных для объекта.