Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ship79
2 / 2 / 0
Регистрация: 15.12.2013
Сообщений: 149
1

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

21.11.2016, 18:30. Просмотров 770. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2016, 18:30
Ответы с готовыми решениями:

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

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

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

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

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

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

и еще можете разъяснить, что происходит на каждом шаге , что за переменная tmp, что делает static_cast?
0
nmcf
6401 / 5663 / 2580
Регистрация: 14.04.2014
Сообщений: 23,968
22.11.2016, 10:21 5
Считывается int сначала, вот для него и tmp, а static_cast преобразует int в enum.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8098 / 4950 / 1434
Регистрация: 29.11.2010
Сообщений: 13,432
22.11.2016, 10:55 6
Цитата Сообщение от ship79 Посмотреть сообщение
так примерно ?
Примерно так
0
ship79
2 / 2 / 0
Регистрация: 15.12.2013
Сообщений: 149
27.11.2016, 08:19  [ТС] 7
Цитата Сообщение от nmcf Посмотреть сообщение
Считывается int сначала, вот для него и tmp, а static_cast преобразует int в enum.
ооо, вот оно как , вот теперь более ясно , спасибо )
0
27.11.2016, 08:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2016, 08:19

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru