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

Сброс состояния буфера cin.clear - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ алгоритм аппроксимации произвольной функции http://www.cyberforum.ru/cpp-beginners/thread646470.html
прошу помочь написать программу
C++ Указатель на функцию с аргументами по умолчанию Можно ли вообще определить и записать подобное чудо? http://www.cyberforum.ru/cpp-beginners/thread646467.html
состовные операторы присваивания C++
Друзья разъясните мне новичку ), для вас простую истину.... к примеру имеем инструкцию х = х + 10; "Используя составной оператор присваивания, ее можно переписать в таком виде." х += 10; (цитата...
C++ Чтение строки
Требуется написать функцию, которая читает строка размеров не более 40 символов. Строка представляет собой десятичное число. Ввод должен происходить по аналогии с cin >> str, но с некоторыми...
C++ Консоль. Не работает system("cls") http://www.cyberforum.ru/cpp-beginners/thread646425.html
Всем привет! Я конечно начинающий, но не настолько, чтобы не было возможности использовать system("cls"). Пробовал подключать разные библиотеки windows.h и stdlib.h, хотя раньше вроде хватало...
C++ Встраивание результата функции в место ее вызова Здравствуйте. Можно ли как-то реализовать чтобы перед компиляцией программы выполнолась функция, а ее результат встраивался в место ее вызова? Знаю что для фунций есть классификатор inline, но тогда... подробнее

Показать сообщение отдельно
moskitos80
64 / 64 / 10
Регистрация: 04.10.2011
Сообщений: 232
Завершенные тесты: 1

Сброс состояния буфера cin.clear - C++

04.09.2012, 10:29. Просмотров 2826. Ответов 11
Метки (Все метки)

Всем привет. Пытаюсь контролировать ввод пользователя. Вопрос в следующем: почему очерёдность операций принципиальна :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
int main()
{
    int num;
 
    while(1) {
 
        cout << endl << "Enter integer num . . . ";
        cin  >> num;
 
        if( cin ) {
            break;
        }
 
        cin.sync();    // Если здесь, то Вываливаемся в бесконечность
        cin.clear();
        //cin.sync();  // Если здесь, то всё ОК
 
        cout << endl << "Not valid integer num" << endl;
    }
 
    cout << endl << "Entered num " << num << endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru