Елена Кушникова
Елена Кушникова

проблема ввода данных в формате date с++

Добрый вечер, уважаемые коллеги!
У меня возник небольшой вопрос. Мне надо ввести данные типа struct. Они имеют вид

enum Month {JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG,
SEP, OCT, NOV, DEC, MONTHS = 12};

struct Date
{
int dd;
Month mm;
int yyyy;
};
мне надо написать функции, которая выводит данные из потока и которая туда же вводит. Когда же я пытюась написать
istream& operator >> (istream& is, Date& d)
{
is >> d.dd;
is >> int(d.mm) ;
is >> d.yyyy;
return is;

}
Мне выдается ошибка. Как мне эту ошибку исправить?
С Уважением!

АН
Анна Никитина

> is >> int(d.mm);

is >> (int &)d.mm;

или

is >> reinterpret_cast(d.mm);

По уму, нужно написать свой оператор >> для Month, в котором проверить корректность ввода и установить флаг ошибки для потока, если ввод ошибочный:

istream &operator>>(istream &is, Month &m) {
int t;
if (is >> t) {
if ...// t попадает в диапазон
m = static_cast(t);
else
...// ошибка ввода, делаем поток "плохим"
}
return is;
}

Похожие вопросы
даны два символа в формате чар. в паскаль абс. надо выыести их сумму. вводим 49 и 50, а получаем 3
HTML5 - Input type="date" name="date" required placeholder="Date of birth"
Паскаль. Какая команда отвечает за ввод и вывод данных в формате .in и .out в паскале
Помогите пожалуйста, проблемы с вводом данных с клавиатуры!
Необходимо запретить ввод невозможных данных в базе данных
PHP. Функция Date(). Время возвращает в формате UTC +0. А мне нужно чтобы возвращало в формате +6. Что делать? :[
Помогите со вводом данных в PHP!
Помогите сделать ввод данных в PHP
Ввод данных пользователем на лиспе в циклелисп
Как организовать цикл ввода данных в список