Форум программистов, компьютерный форум CyberForum.ru

Потоковый вывод матрицы-объекта с манипуляторами - C++

Восстановить пароль Регистрация
 
Некий_Чел
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 110
15.04.2013, 18:47     Потоковый вывод матрицы-объекта с манипуляторами #1
Нужно вывести матрицу-объект с помощью " << " используя манипуляторы из <iomanip>, заданные вне класса
(в мэйне)

Краткое описание класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Matrix
{
private:
    double * M; // указатель на матрицу
    int m; // число строк
    int n; // число столбцов
 
public:
    Matrix ( int, int, const double* );
// ...
    friend ostream & operator << ( ostream &, const Matrix & );
};
Определение перегруженного оператора " << ":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
ostream & operator << ( ostream & out, const Matrix & A )
{
    int i, j;
 
    for(i = 0; i < A.m; i ++)
    {
        for(j = 0; j < A.n; j ++) 
            out << A[i][j] << ' ';
        
        out << endl;
    }
    return out;
}
То, что я пытаюсь вывести в мэйне:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "Matrix.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{   
    double m[] = {1, 2, 9, 0, 4, 7};
    Matrix F(2,3,m);
        cout << endl << setw(10) << setprecision(2) << F << endl;
//...
}
На консоли выводятся 9 пробелов, 1 2 9, пропуск строки, 0 4 7
Естественно, манипуляторы подействовали только на первый выводимый эл-т.
И мне понятны причины, но как добиться того, чтобы все эл-ты выводились как того требуют манипуляторы?
Изменить код перегруженного оператора?
Подскажите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 18:47     Потоковый вывод матрицы-объекта с манипуляторами
Посмотрите здесь:

потоковый ввод - вывод C++
потоковый вывод. язык С. C++
C++ Потоковый ввод-вывод
Потоковый вывод C++
C++ Форматированный потоковый вывод
Потоковый ввод/вывод текста C++
Потоковый ввод/вывод C++
Потоковый вывод в никуда C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru