Я не понимаю, почему этот код дает мне ошибкуC++: Ошибка на ostream << оператора
void printSalesFile(vector< vector<float> > & list)
{
ofstream outfile;
outfile.open("sales.lst", ios::out);
if (outfile.is_open())
{
outfile << setw(6) << right << "ID"
<< setw(12) << "January"
<< setw(12) << "Febuary"
<< setw(12) << "March"
<< setw(12) << "April"
<< setw(12) << "May"
<< setw(12) << "June"
<< setw(12) << "July"
<< setw(12) << "August"
<< setw(12) << "September"
<< setw(12) << "October"
<< setw(12) << "November"
<< setw(12) << "December" << endl;
for (unsigned int i = 0; i <= list.size(); i++)
{
outfile << setw(6) << right << list[i]; //i don't understand why it says there's an error here.
for(int j = 0; j <= 11; j++)
outfile << setw(12) << right << list[i][j];
outfile << endl;
}
}
outfile.close();
}
Я попытался удалить его и вставить то, что я написал выше, что работает, но до сих пор получить ошибки.
Вот сообщение об ошибке:
D:\QT\Salesperson\main.cpp:295: error: cannot bind 'std::basic_ostream<char>' lvalue to 'std::basic_ostream<char>&&'
outfile << setw(6) << list[i];
^
Что касается текстового файла, он имеет 2 линии, 1 для заголовка и другой, который имеет значения от всей совокупности до 0
Не спам-теги! Это не C! – Olaf
Попробуйте использовать другое имя переменной, чем 'list'. Если у вас 'using namespace std;', то компилятор будет использовать 'std :: list', и он путается с вашим именем переменной. –
Измените свой пост с помощью определения 'list'. В одном утверждении это одномерная переменная, в другой - двумерная переменная. –