перегрузка операторов с++, не работает пример из учебник дейтел..

программирование с++ перегрузка операторов

//простой класс времени. для него в примере перегружаются операторы << и >>

class Time {
friend ostream & operator <<(ostream&,Time &);
friend istream & operator >>(istream&,Time &);
public:
Time();
private:
char hour[3]; //часы. 2 символа и '\0'
char min[3]; //минуты
char sec[3]; //секунды
};

ostream & operator <<(ostream& out, Time & t)
{
out << t.hour << ":" << t.min << ":" << t.sec;
return out;
}

istream & operator >>(istream& in, Time & t)
{
//ожидается ввод в виде 10:11:12
in.getline(t.hour,3);// '1' и '0', а затем '\0' должны записываться в hour, это происходит
in.ignore(1); //игнорируем ':' или другой разделитель
in.getline(t.min,3);//'1' и '1' должны записаться в min, но этого не происходит
in.ignore(1);
in.getline(t.sec,3);
return in;
}

пример из книги, один в один. почему не работает, разобраться не могу. может быть не так использую getline()?
а как я должен был бы читать ввод, если бы hour, min, sec были типа int?
Заранее благодарен

Примечание:
getline -> get

можете написать, как это будет в моем случае?
Ответы:
getline -> get


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.