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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Преобразование (упорядочивание) массива http://www.cyberforum.ru/cpp-beginners/thread1678908.html
Добрые люди! Написала код, каждое задание лабораторной надо оформить в виде функции, первые 2 функции работают так, как нужно :). Третья выводит упорядоченные элементы функции не правильно(( Я понимаю, что написанное там - неправильно, но пыталась я сделать именно это: "Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале , а потом...
C++ Строка: чем отличается строки string, char, char*? Помогите разобраться,совсем плохо идёт,чем отличается строки string,char,char* И если можно пару примеров Буду весьма признательна http://www.cyberforum.ru/cpp-beginners/thread1678896.html
Некоректный вывод данных с использыванием метода класса C++
Добрый вечер. Помогите разобраться. 1) Почему при выводе на экран результатов поля sname одинаковые? А оценки не соответствуют введенным? 2) В поле среднего значения оценок выдает мусор. Буду благодарен за помощь) class Student { private:
C++ Заполнить массив размерностью 6x6 по правилу
Заполнить массив размерностью 6x6 по правилу 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
C++ Массив: Определить сумму всех элементов третьей строки массива http://www.cyberforum.ru/cpp-beginners/thread1678891.html
Дан двумерный массив. Определить: а) сумму всех элементов третьей строки массива; б) сумму всех элементов s-го столбца массива ;
C++ C++, ссылки и указатели, не обрабатывается cin>> , нужен совет Задача кода: считывать имя и количество баллов в векторы, затем выводить их на экран и включать поиск по имени среди введенных значений. Проблема: инструкция cin>>find; не обрабатывается (не предлагается ввести значение для поиска). Сам код: #include <string> #include <iostream> #include <vector> using namespace std; int find_name(vector<string>, string); подробнее

Показать сообщение отдельно
k1n3c7
8 / 8 / 14
Регистрация: 06.03.2016
Сообщений: 51
07.03.2016, 02:46     Функции istream, требуется объяснение
Я сам в этом не очень хорошо разбираюсь, но попробую объяснить как я это понимаю.
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 главу, там всё подробно описано.
 
Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru