ошибка: «недопустимые операнды» для бинарного оператора < - PullRequest
2 голосов
/ 05 марта 2012

Я получаю следующую ошибку:
недопустимые операнды типов 'char' и неразрешенная перегруженная функция типа> оператор 'to binary' << '</em>

Что этозначит?

#include <string>
#include <fstream>
using namespace std;

int main()
{
    ifstream inFile;
    inFile.open("records.txt");

    ofstream outFile;
    outFile.open("corrected.txt");

    while (inFile.good())
    {
        string num, temp;
        inFile >> num;
        outFile << temp.at(0)=num.at(9) << temp.at(1)=num.at(8) 
                << temp.at(2)=num.at(7) << temp.at(3)=num.at(6) 
                << temp.at(4)=num.at(5) << temp.at(5)=num.at(4) 
                << temp.at(6)=num.at(3) << temp.at(7)=num.at(2) 
                << temp.at(8)=num.at(1) << temp.at(9)=num.at(0) << endl; 
    // invalid operands of types 'char' and unresolved overloaded function type>'
    // to binary 'operator<<'
    }
    return 0;
}

Предполагается, что эта программа перевернет список телефонных номеров, которые были изменены.

1 Ответ

5 голосов
/ 05 марта 2012

Вам необходимо заключить в скобки выражения или неправильный приоритет нарушает код.

Заменить temp.at(0)=num.at(9) на (temp.at(0)=num.at(9)) и так далее.Тогда он скомпилируется.

    outFile << (temp.at(0)=num.at(9)) << (temp.at(1)=num.at(8))
            << (temp.at(2)=num.at(7)) << (temp.at(3)=num.at(6))
            << (temp.at(4)=num.at(5)) << (temp.at(5)=num.at(4))
            << (temp.at(6)=num.at(3)) << (temp.at(7)=num.at(2))
            << (temp.at(8)=num.at(1)) << (temp.at(9)=num.at(0)) << endl;
...