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

error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 292
17.10.2013, 16:57     error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>" #1
Нужно из файла скачать информацию в объект. Почему у меня не получается?
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
#include <vector>
#include <string>
#include <iostream>
#include <fstream>
#include <iterator>
 
using namespace std;
 
class Money{
    friend ostream& operator<<(ostream& out, const Money& m){
        out<<"Money: "<<m.gr<<"."<<m.cop<<endl;
        return out;
    }
    friend ofstream& operator<<(ofstream& out,Money& m){
        out<<m.gr<<" "<<m.cop<<endl;
        return out;
    }
    friend ifstream& operator>>(ifstream& in,Money& m){
        in>>m.gr>>" ">>m.cop;
        return in;
    }
public:
    Money():gr(0),cop(0){}
 
    Money(int g,int c){
        gr = g;
        cop = c;
    }
private:
    int gr;
    int cop;
};
int main(){
    vector<Money> vec;
    ifstream in("input.txt");
    ofstream out("output.txt");
    copy(istream_iterator<Money>(in),istream_iterator<Money>(),back_inserter(vec));
    cin.get();
    cin.get();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2013, 16:57     error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>"
Посмотрите здесь:

C++ Исправить ошибку:error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
C++ Ошибка : бинарный "<<": не найден оператор, принимающий правый операнд типа point
C++ Error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
C++ Конструкторы, приведение типа и ошибка "Не найден оператор, принимающий правый операнд типа 'char *'"
Error C2678: бинарный "<<": не найден оператор, принимающий левый операнд типа "std::ifstream" C++
Error C2296: %: недопустимо, левый операнд имеет тип "float" C++
Бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" C++
Error C2679: бинарный ">>": не найден оператор, принимающий правый операнд C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.10.2013, 18:26     error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>" #2
Для того чтобы хотя бы собиралось, заменить:
Цитата Сообщение от Insane__ Посмотреть сообщение
friend ifstream& operator>>(ifstream& in,Money& m){ in>>m.gr>>" ">>m.cop; return in; }
на
C++
1
2
3
4
    friend istream& operator>>(istream& in,Money& m){
        in>>m.gr>>m.cop;
        return in;
    }
Yandex
Объявления
17.10.2013, 18:26     error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>"
Ответ Создать тему
Опции темы

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