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

Можно ли сравнивать потоки? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Решение СЛАУ методом простых итераций. http://www.cyberforum.ru/cpp-beginners/thread456266.html
#include <iostream.h> #include <iomanip.h> #include <math.h> #include <stdlib.h> #include <conio.h> #define Eps pow(10,-8) void func(double* x1,double* x2,double* a,int m,int n) { cout<<"X= "; for(int i=0;i<n-1;i++) { *(x2+i)=*(a+i*n+n-1);
C++ Напишите программу, которая будет находить общее количество осадков для каждого из 5 лет a)Напишите программу, которая будет находить общее количе-ство осадков для каждого из 5 лет, среднегодовое и среднемесячное количество осадков за 5 лет. b)Модифицируйте метеорологическую программу таким образом, чтобы она выполняла вычисления, используя указатели вместо индексов. (Вы по-прежнему должны объявить и ини-циализировать массив.) http://www.cyberforum.ru/cpp-beginners/thread456262.html
C++ Как приспособить мой контейнер для работы с алгоритмами STL
Всем привет.Помогите пожалуйста приспособить мой контейнер для роботи с алгоритмами STL(sort,acumulate и т.д).Оно не ругаетса на алгоритмы,но както меняет указатели што потом их востановить нереально.Напаред спасибо.Вот мой код: // BynaryTree.h #pragma once #include<iostream> using namespace std; namespace BynaryTree { template<class T>
Помогите Реализовать динамический эффект поднятия флага государства на мачту C++
Реализовать динамический эффект поднятия флага государства на мачту
C++ Посчитать сумму цифр double http://www.cyberforum.ru/cpp-beginners/thread456236.html
Помогите. Новичек в Си. Обучаюсь. В голову пришла задача: Есть число с точкой( типа double), нужно посчитать суму цифр до точки и после. Обе суммы вывести на экран.
C++ в одномерном массиве, элементы которого- целые числа, произвести действие: Вставить новый элемент после всех элементов, кратных своему номеру. подробнее

Показать сообщение отдельно
Kravensky
 Аватар для Kravensky
0 / 0 / 0
Регистрация: 01.03.2012
Сообщений: 24
02.03.2012, 13:49  [ТС]     Можно ли сравнивать потоки?
А нельзя перегружать с ostream если консоль и ofstream при выводе в файл ?
Попробовал так. Компилятор ругается на двусмысленность. А посему вопрос: как можно явно указать поток cout?

Текущий вариант функций:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* Вывод квадратной матрицы */
ostream &operator<< (ostream &stream, square_matrix output_matrix)
{
    for (int i = 0; i <= output_matrix.order - 1; i++)
    {
        stream << right << resetiosflags (ios::left) << setw (3) << "||";
        
        for (int j = 0; j <= output_matrix.order - 1; j++)
            stream << right << resetiosflags (ios::left) << setw (3) << output_matrix.coefficents_set [i] [j];
 
        stream << right << resetiosflags (ios::left) << setw (3) << "||" << endl;
    }
 
    stream << endl;
    
    return stream;
}
 
/* Вывод квадратной матрицы в файл */
ofstream &operator<< (ofstream &stream, square_matrix output_matrix)
{
    stream << output_matrix.order << endl;
    
    for (int i = 0; i <= output_matrix.order -1; i++)
        for (int j = 0; j <= output_matrix.order - 1; j++)
            stream << right << resetiosflags (ios::left) << setw (3) << output_matrix.coefficents_set [i] [j];
    
    stream << endl;
    
    return stream;
}
 
/* Ввод квадратной матрицы */
istream &operator>> (istream &stream, square_matrix &input_matrix)
{
    for (int i = 0; i <= input_matrix.order - 1; i++)
        for (int j = 0; j <= input_matrix.order - 1; j++)
        {
            cout << "Введите элемент [" << i + 1 << "] [" << j + 1 << "]: ";
            stream >> input_matrix.coefficents_set [i] [j];
        }
    
    return stream;
}
 
/* Ввод квадратной матрицы из файла */
ifstream &operator>> (ifstream &stream, square_matrix &input_matrix)
{
    int x;
    
    stream >> x;
    
    if (x == input_matrix.order)
        for (int i = 0; i <= input_matrix.order - 1; i++)
            for (int j = 0; j <= input_matrix.order - 1; j++)
                stream >> input_matrix.coefficents_set [i] [j];
    else
    {
        cout << "Матрицу из этого потока записать не удалось." << endl;
        cout << "Не совпадают порядки" << endl;
    }
    
    return stream;
}
Вывод компилятора:
Код
kravensky@kravensky-desktop ~ $ g++ -c -o demo.o demo_program.cpp
In file included from demo_program.cpp:3:0:
function.cpp: In function ‘std::ofstream& operator<<(std::ofstream&, square_matrix)’:
function.cpp:58:26: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/include/c++/4.5/bits/ostream.tcc:105:5: note: candidate 1: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]
function.cpp:56:11: note: candidate 2: std::ofstream& operator<<(std::ofstream&, square_matrix)
Строка 58, это строка 22 в приведённом выше коде. Строка 56 - строка 20, соответственно.
 
Текущее время: 03:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru