Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
3 / 3 / 0
Регистрация: 15.12.2013
Сообщений: 155
1

Что такое istream и с чем его едят?

21.11.2016, 18:30. Показов 5590. Ответов 6
Метки нет (Все метки)

здравствуйте. у меня такой вопрос , делаем лабы с перечислениями и структурами и в них появилось istream operator. пытался почитать книжки, не понял объяснения, хотелось бы простого объяснения о том, что это и для чего. заранее спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
enum Sex
{
    Male, Female
};
 
 
istream& operator >> (istream& is, Sex& i)
{
    int tmp;
    if (is >> tmp)
        i = static_cast<Sex>(tmp);
    return is;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2016, 18:30
Ответы с готовыми решениями:

что такое Qt, и с чем его едят?
Здравствуйте, я бы хотел узнать что такое Qt, и как на нем программировать, я слышал что это...

Что такое This и с чем его едят
Доброго дня/ночи Вот пытаюсь выкурить мануалы по теме &quot;this&quot;. Прочитал надцать листов литературы,...

Что такое assoc и с чем его едят?
Объясните, пожаалуйста)

Модуль: что такое и с чем его едят?
есть задание: что есть модуль, как он создается и как подключается? предполагаю, что это...

6
11 / 10 / 8
Регистрация: 22.04.2015
Сообщений: 43
21.11.2016, 18:35 2
C++
1
istream& operator>>() {}
это перегрузка оператора ">>"
0
Форумчанин
Эксперт CЭксперт С++
8171 / 5021 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
21.11.2016, 19:27 3
Цитата Сообщение от ship79 Посмотреть сообщение
istream&
Поток считывания.
В вашем примере перегружается operator>> для считывания с потока. Функция принимает ссылку на поток istream и ссылку на объект, считывает с потока и возвращает ссылку на поток.
Таким образом, мы учим компилятор считывать с потока в переменную типа Sex (также как он это уже умеет делать со стандартными типами вроде int)
0
3 / 3 / 0
Регистрация: 15.12.2013
Сообщений: 155
22.11.2016, 10:11  [ТС] 4
Цитата Сообщение от MrGluck Посмотреть сообщение
Таким образом, мы учим компилятор считывать с потока в переменную типа Sex (также как он это уже умеет делать со стандартными типами вроде int)
это потому что мы сами создали этот тип и поэтому должны объяснить компилятору, как с ним работать, так примерно ?

и еще можете разъяснить, что происходит на каждом шаге , что за переменная tmp, что делает static_cast?
0
7158 / 6133 / 2801
Регистрация: 14.04.2014
Сообщений: 26,455
22.11.2016, 10:21 5
Считывается int сначала, вот для него и tmp, а static_cast преобразует int в enum.
0
Форумчанин
Эксперт CЭксперт С++
8171 / 5021 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
22.11.2016, 10:55 6
Цитата Сообщение от ship79 Посмотреть сообщение
так примерно ?
Примерно так
0
3 / 3 / 0
Регистрация: 15.12.2013
Сообщений: 155
27.11.2016, 08:19  [ТС] 7
Цитата Сообщение от nmcf Посмотреть сообщение
Считывается int сначала, вот для него и tmp, а static_cast преобразует int в enum.
ооо, вот оно как , вот теперь более ясно , спасибо )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2016, 08:19

Что такое Класс, и с чем его едят?
собственно это я бы и хотел знать. попытался воспринять самостоятельно - не получилось. прошу,...

Объясните что такое массив объединений и с чем его едят
Написать программу удаления заданного числового значения из массива объединений. Объясните что...

Класс-контейнер? Что это такое и с чем его «едят»?
Вечер добрый, столкнулся со следующей проблемой, в общем, есть задание: Создать класс-контейнер,...

Нюансы использования оператора запятая или что такое UB и с чем его едят
Почему студия и ideone выдают разные значения для a и b? в студии выходит a = 10 , b = 10 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru