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

Функции istream, требуется объяснение - C++

Восстановить пароль Регистрация
 
vladiktankonlin
1 / 1 / 1
Регистрация: 30.01.2016
Сообщений: 19
07.03.2016, 01:41     Функции istream, требуется объяснение #1
Здравствуйте! В ходе изучения C++ у меня возникло много вопросов, связанных с функциями istream (возможно я называю неправильно). Узнал о таких функциях, как cin.clear(), cin.sync(), cin.fail(), cin.ignore(). Но, к сожалению, внятного объяснения того, что делают эти функции, найти в интернете я не смог. Объясните, пожалуйста, что делают эти функции и, если есть возможность, дайте ссылку на документацию или каталог этих функций. А то приходится по крупицам собирать названия функций потока cin
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2016, 01:41     Функции istream, требуется объяснение
Посмотрите здесь:

istream и конец строки C++
C++ istream, ostream
istream C++
C++ istream состояние bad
Почему istream::get() ? C++
Требуется корректное объяснение C++
Перегрузка ofstream, istream C++
C++ В чем причина ошибки istream

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
k1n3c7
8 / 8 / 14
Регистрация: 06.03.2016
Сообщений: 51
07.03.2016, 02:46     Функции istream, требуется объяснение #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я сам в этом не очень хорошо разбираюсь, но попробую объяснить как я это понимаю.
cin это объект класса istream, соответственно все эти функции находятся в этом классе
чтобы понять что делает istream::clear() и istream::fail() нужно сначала понять что такое флаги
Функции istream, требуется объяснение
•Бит failbit устанавливается, если операция не была выполнена правильно, но поток остался в исправном состоянии. Обычно этот флаг является результатом ошибок форматирования при чтении данных. Например, этот флаг устанавливается, если должно считываться целое число, а следующим символом является буква
•Бит badbit устанавливается при повреждении потока или потере данных. Например, этот флаг устанавливается, когда указатель в файловом потоке ссылается на позицию, предшествующую началу файла.
•Бит eofbit флаг конца файла. Обычно устанавливается одноврменно с битом failbit, потому что конец файла проверяется и обнаруживается при попытке чтения за концом файла.
Эти флаги используют для реализации логики программы. Например можно проверять вышел ли поток за конец файла.

Функция clear() просто сбрасывает все флаги. http://www.cplusplus.com/reference/istream/istream/
Функция fail() возвращает true если установлен флаг badbit или failbit http://www.cplusplus.com/reference/istream/istream/
Функция sync() синхронизирует вводимые данные с буфером. Это значит, что если ты ввёл скажем 10 символов в поток, но прочитал только 5, то остальные 5 удалятся, они не останутся там "висеть", дожидаясь когда их прочитают http://www.cplusplus.com/reference/i.../istream/sync/
Функция ignore() читает и игнорирует сиволы из буфера пока там не встретится указанный разделитель или новая строка если он не указан http://www.cplusplus.com/reference/i...stream/ignore/

Советую скачать Джосаттис Н.М. - Стандартная библиотека C++. Справочное руководство - 2014
И прочитать 15 главу, там всё подробно описано.
vladiktankonlin
1 / 1 / 1
Регистрация: 30.01.2016
Сообщений: 19
07.03.2016, 17:39  [ТС]     Функции istream, требуется объяснение #3
Спасибо, прочту
Yandex
Объявления
07.03.2016, 17:39     Функции istream, требуется объяснение
Ответ Создать тему

Метки
c++, cin, istream
Опции темы

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