Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Разница между 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); /*...

Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) - C++
Добрый день. Как осуществляется выделения памяти под перегруженный оператор ввода данных в пользовательский тип? Ведь мы заранее не можем...

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); //...

2
k1n3c7
11 / 11 / 14
Регистрация: 06.03.2016
Сообщений: 53
07.03.2016, 02:46 #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/istream/istream/sync/
Функция ignore() читает и игнорирует сиволы из буфера пока там не встретится указанный разделитель или новая строка если он не указан http://www.cplusplus.com/reference/istream/istream/ignore/

Советую скачать Джосаттис Н.М. - Стандартная библиотека C++. Справочное руководство - 2014
И прочитать 15 главу, там всё подробно описано.
1
vladiktankonlin
1 / 1 / 1
Регистрация: 30.01.2016
Сообщений: 19
07.03.2016, 17:39  [ТС] #3
Спасибо, прочту
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2016, 17:39
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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