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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vladiktankonlin
1 / 1 / 1
Регистрация: 30.01.2016
Сообщений: 19
#1

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

07.03.2016, 01:41. Просмотров 363. Ответов 2

Здравствуйте! В ходе изучения 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::putback и istream::unget - C++
Можете объяснить, пожалуйста, разницу этих двух функций?

Требуется корректное объяснение - C++
Добрый вечер форумчане) Хочу что бы мне на общедоступном и понятном языке объяснили что означает эта строчка #define eps 0.0001 . ...

Работа с class, требуется объяснение/совет опытных - C++
К примеру имеется такой код:void main(int argc, const char * argv) { const int n = 2; drug *obj; objects(obj, n); /*...

istream - C++
В 12 стоке ошибка no matching function for call to `std::basic_istream<char, std::char_traits<char> >::basic_istream(char*&, size_t)' В...

istream, ostream - C++
Есть задача по сохранению в файл и восстановлении из файла объекта. Функции надо сделать такие: void Serialize(std::ostream & stream); //...

Почему istream::get() ? - C++
Здравствуйте. Почему перед istream::getline, необходимо делать get(), если перед этим было cin >> char_array (filein >> char_array)? А...

istream состояние bad - C++
Всем привет! Как можно вызвать состояние bad у потока istream? (т.е. не так, что "состояние bad может быть вызвано серьезной ошибкой...

Перегрузка ofstream, istream - C++
В общем-то ошибка в описана в самом коде //main.cpp #include "ui.cpp" int main() { ui iu; iu.menu(); iu.casein(); ...

istream и конец строки - C++
Решая задачу, столкнулся с проблемой - не знаю, как записать следующее: "пока не конец строки, читаем слово". То есть: string s; while...

В чем причина ошибки istream - C++
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Использование конструктора с параметром istream - C++
Данное упражнение с книжки Липпмана. Нужно добавить в класс конструктор с параметром istream, а потом в программе конструктор с данным...

Объект cin и класс istream - C++
В учебнике приводиться такое задание: "Напишите функцию, получающую и возвращающую ссылку на объект класса istream. Фукнция должна читать...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
k1n3c7
10 / 10 / 14
Регистрация: 06.03.2016
Сообщений: 53
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
Спасибо, прочту
Ответ Создать тему
Опции темы

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