А почему в коде, подчеркивается с ошибкой cout<<data1? C++ - Вопросы по С+

Вопрос А почему в коде, подчеркивается с ошибкой cout<<data1? C++

Регистрация
16 Июн 2013
Сообщения
65
Репутация
-3
Спасибо
0
Монет
0
Какая ошибка в этом месте... #include
#include

using namespace std;

int main()

{
struct Sales_data {

std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};

Sales_data data1, data2;
if (std::cin >> data1.bookNo)
{

Sales_data data2;
while (std::cin >> data2.bookNo) {

if (data1.bookNo == data2.bookNo)
data1.bookNo += data1.bookNo + data2.bookNo;
else {

std::cout << data1 << endl;
data1 = data2;
}
}
std::cout << data1 << endl;
}

else {

//нет ввода! Предупредить пользователя
std::cerr << "No data?!" << std::endl;
return -1;
}
return 0;
system("pause");

}
 
Регистрация
10 Сен 2013
Сообщения
82
Репутация
-18
Спасибо
0
Монет
0
Злой компилятор засекретил сообщение об ошибке? Если хочешь выводит структуру Sales_data в поток оператором << , надо этот оператор перегрузить для данного случая.
 
Регистрация
28 Сен 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Структура не может быть выведена сразу как параметр через cout, если cout не доопределен для вывода таких структур, только по частям.
 
Регистрация
13 Мар 2017
Сообщения
314
Репутация
70
Спасибо
11
Монет
0
Какая ошибка в этом месте... #include
#include

using namespace std;

int main()

{
struct Sales_data {

std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};

Sales_data data1, data2;
if (std::cin >> data1.bookNo)
{

Sales_data data2;
while (std::cin >> data2.bookNo) {

if (data1.bookNo == data2.bookNo)
data1.bookNo += data1.bookNo + data2.bookNo;
else {

std::cout << data1 << endl;
data1 = data2;
}
}
std::cout << data1 << endl;
}

else {

//нет ввода! Предупредить пользователя
std::cerr << "No data?!" << std::endl;
return -1;
}
return 0;
system("pause");

}
Это не будет работать потому что тип данных который используется в structure нельзя будет отобразить через cout. Так как сама задача неизвестна решение составить так же нельзя.
 
Сверху Снизу