for(int I = Ø; I < N; I ++)
for(int j = Ø; j < M; j ++)
ifs>>x. x [ I ][ j ];/ * Допускается совпадение символических имен
элементов данных и параметров * /.
returnifs; //Не забывать!
}
ofstream & operator << (ofstream & ofs, matr & a)
{
for(int I = Ø;I < N;I ++)
for(int j = Ø;j < M;j ++)
ofs<< a. x [ I ][ j ];
return ofs;
}
matr operator + (matr & a, matr & b)
{
matr v;
for(int I = Ø; I < N; I ++)
for(int j = Ø; j < M; j ++)
v.x [ I ][ j ] = a. x [ I ][ j ] + b. x [ I ][ j ];
return v;
}
void main ( )
{
matr w, v;
ifstream fvh ("v hod. dan");
fvh>> v >> w; // * Дважды вызывается оператор >>. Первой
вводится матрица v, а за ней w */
matrq;
q = v + w; //вызывается оператор + ( ).
ofstream viv ("q. dan");
viv << q; //Вывод q в файл q.dan.
//Вызывается оператор << ( ).
}
Библиотека потоков С++ предусматривает три способа управления форматом выходных данных: вызов форматирующих функций - элементов, использование флагов и применение манипуляторов.
Функции для форматирования, имеющиеся в классе ios, перегружены, чтобы обеспечить возможность как чтения, так и установки управляющего атрибута. Часто для атрибутов, которыми можно управлять с помощью функций, библиотека потоков С++ предусматривает также МАНИПУЛЯТОРЫ. Ниже описываются атрибуты, для управления которыми в классе ios имеются функции-элементы.
Для чтения и управления ширины поля потока в классе ios имеется функция width. Она перегружена : intios : .width ( ) возвращает текущее значение внутренней переменной ширины поля потока;
intios::width(int) устанавливает значение переменной ширины поля.
Дополнительная информация:
Примеры:
cin.width (MAX_LEN);
cout.width ( 4 );
Для чтения или изменения текущего заполняющего символа можно применить функцию ios ::fill( ). Эта функция тоже перегружена.
charios ::fill( char ) - устанавливает внутренний заполняющий символ потока и возвращает его предыдущее значение.
По умолчанию заполняющим символом является пробел.
Пример: cout.fill (' * ');
Функция ios::precision( ) применяется при выводе чисел с плавающей точкой, позволяя читать или устанавливать текущее число значащих цифр.
intios::precision( )- возвращает текущее значение точности.
intios::precision(int) - устанавливает внутреннюю переменную точности вещественных чисел потока и возвращает прежнее значение.
Дополнительная информация:
Если не установлен ни один из этих флагов, то precision задаёт общее число значащих цифр.
Примеры:
cout.precision (4); //Всего 4 цифры.
cout.setf (ios :: fixed, ios :: floatfield); //Установили флаг fixed.
cout.precision (4); //4 цифры // после десятичной точки.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.