Консультация № 178540
21.05.2010, 14:16
0.00 руб.
0 1 0
писать перегруженные операции записи в файл структур.
Строка символов из десяти символов и пять чисел целого типа.




Приложение:
Пример программы
#include<fstream.h>
struct element {
int nk,nl;
float zn;
};
ofstream &operator<<(ofstream &out,element el)
{ out<<' '<<el.nk<<' '<<el.nl<<' '<<el.zn<<'\n';
return out;
}
int main()
{
const int numberFl=5; // количество структур
element arel[numberFl]=
{1,2,3.45,2,3,4.56,22,11,45.6,3,24,4.33,3,6,-5.3};
ofstream filel("abc"); // открытие файла для записи
if ( !filel) {
cerr<<"ошибка открытия файла ABC";
return 0;
}
// запись в файл ABC массива структур
for(int i=0;i<numberFl;i++)
filel<<arel[i];
return 0;
}

Обсуждение

Неизвестный
21.05.2010, 16:20
общий
Dmitriy:
А что делать-то?
У вас приведена работающая программа с перегруженным оператором '<<' (стиль кошмарный, но ведь работает).
Ее требуется изменить для записи другой структуры (Строка из десяти символов и пять чисел целого типа)?
Если так, то вот (не проверял, но должно быть правильно):

Код:
struct element2 {
char s[10]; // Строка из десяти символов
int i[5]; // пять чисел целого типа
};
ofstream& operator<< ( ofstream& out, element2& el )
{
out << el.s;
for( int i=0; i<5; ++i ) out << ' ' << el.i[i];
return out;
}

Если Вы хотите чего-то другого, то напишите, пожалуйста, более внятно.
Форма ответа