Форум программистов, компьютерный форум CyberForum.ru

Что происходит в этой строке? - C++

Восстановить пароль Регистрация
 
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
02.06.2013, 10:55     Что происходит в этой строке? #1
C++
1
2
3
fstream IN(ordersName);
        int kit,nKit ;
        for (int i = 1;IN >> kit >> nKit; ++i) {
Вот это меня интересует что такое IN >> kit >> nKit

Добавлено через 33 минуты
up.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.06.2013, 11:02     Что происходит в этой строке? #2
считывание двух интов из потока,
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
02.06.2013, 11:07  [ТС]     Что происходит в этой строке? #3
Цитата Сообщение от Jupiter Посмотреть сообщение
считывание двух интов из потока,
То есть IN считывается сначала в 1 переменную потом во 2ую потом снова в 1ую (элементы поочередно заносятся) и это является аналогом условия "пока не конец файла" верно понял?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.06.2013, 11:11     Что происходит в этой строке? #4
да.
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
02.06.2013, 11:27     Что происходит в этой строке? #5
Лучше сказать так:
Строка вида
IN >> kit
Вызывает функцию с заголовком
istream& operator>> (istream&, int&);
Как мы видим этот оператор возвращает ссылку на istream (как правило, тот который и вызывался)
IN >> kit >> nKit равносилен (IN >> kit) >> nKit
А выражение (IN >> kit), как мы выяснили в прошлом шаге, есть объект istream, который возвратила функция istream& operator>> (istream&, int&);
Соответственно на данном шаге(после вызова) это равносильно IN >> nKit; эта функция точно также вызывает опять эту функцию с оператором и опять же возвращает поток istream = IN
В этот момент компилятор пытается привести IN к bool перменной(т.к. это условие продолжения цикла), а внутри класса fstream определен оператор приведения fstream к bool, который возвращает true в случае, если не достигнут конец файла, иначе false могу ошибаться
Yandex
Объявления
02.06.2013, 11:27     Что происходит в этой строке?
Ответ Создать тему
Опции темы

Текущее время: 10:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru