Перейти к основному содержимому

Пример 2. Перегрузка операции <<

Пример перегрузки операции << для вывода в файл некоторой структуры element.

// overload.cpp  -  запись  структур в  файл перегруженной
// операцией <<
#include <iostream>
#include <fstream>

using namespace std;
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 numbeEl = 5; // Количество структур в массиве
element arel[numbeEl] = {1, 2, 3.45, 2, 3, 4.56,
22, 11, 45.6, 3, 24, 4.33, 3, 6, -5.3};
// Определяем поток и связываем его с новым файлом abc:
ofstream filel("abc.txt", ios::app);
if (!filel) {
cout << "Неудача при открытии файла abc.\n";
return 1;
}
// Запись в файл abc массива структур:
for (int i = 0; i < numbeEl; i++)
filel << arel[i];
return 0;
}

Результат выполнения программы - создание файла с именем abc.txt в текущем каталоге и запись в этот файл элементов массива из пяти структур element. Содержимое файла abc:

 1    2    3.45
2 3 4.56
22 11 45.6
3 24 4.33
3 6 5.3