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

Охота на ошибки, при неправильном вводе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание чисел до нажатия Enter http://www.cyberforum.ru/cpp-beginners/thread927303.html
Нужна функция, благодаря которой цикл будет выполнятся до нажатия Enter.
C++ Функции. Генерация строк Здравствуйте, форумчане. Помогите реализовать программу. Напишите программу на С++, которая использует три определяемых пользователем функции ( включая main ( ) ) , и результатом ее выполнения является следующий вывод: Three blind mice Three blind mice See how they run See how they run Одна функция , вызываемая два раза, должна генерировать первые две строки , а вторая функция , также... http://www.cyberforum.ru/cpp-beginners/thread927296.html
Нахождение пароля C++
Появился один немного странный вопрос, а конкретно он касается мини-взлома своего же кода, если это вообще можно назвать взломом. Вот простые несколько строчек кода, которые требуют ввод определенного пароля на вход в программу while(pas != "12345") { system("cls"); cin>>pas;
Динамически или статически C++
Что лучше для олимпиад, динамически выделять память, или статически. В исходниках крутых олимпиадников в основном вижу, что под массив выделяют память вот так: const int N = 2222222; char s; Либо сразу массив большой, а потом используют лишь часть памяти, либо константу, которую потом используют для массивов. Только не совсем понимаю, почему они это делают это же усложняет работу с ними,...
C++ Сравнение строк (символьные массивы), игнорируя регистровые различия http://www.cyberforum.ru/cpp-beginners/thread927269.html
Я недавно начал изучать С++ и все не как не пойму что не так с моей программой... Задача: Напишите программу, которая предлагает пользователю ввести две строки, а затем сравнивает их, игнорируя "регистровые" различия, т.е. прописные и строчные буквы ваша программа должна воспринимать как одинаковые. Проблема с самим сравнением, в результате получается что строка 1 всегда больше 2, но если они...
C++ Таблица умножения Написал программу которая делает такое: 1.Юзер вводит число, таблицу умножения которого нужно вывести 2.Выводится таблица умножения этого числа Например: 1 1 * 1 = 1 1 * 2 = 2 ... подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:12     Охота на ошибки, при неправильном вводе
Цитата Сообщение от ququ_smile Посмотреть сообщение
Написано, что она "очищает" состояния потока, делая его работоспособным.
При ошибке, в потоке устаналивается один из флагов ошибки (failbit, badbit), невведённое остаётся в потоке. clear() сбрасывает флаги ошибок, поток становится рабочим, но нужно убрать из потока и то, что осталось невведённым.

Добавлено через 19 минут
Цитата Сообщение от Denisqwwq Посмотреть сообщение
std::cin.sync();
sync() не срабатывает в Linux при очистке потока. Почему неясно, но на практике это так. Можно использовать такую конструкцию (будет выход из ввода, если в строке нет посторонних символов (кроме первых пробелов)):

C++
1
2
3
4
5
6
7
8
9
    cout << "Enter the number: " << endl;
    int i;
    while (!(cin >> i) || cin.peek() != '\n')
    {
        cin.clear();
        while (cin.get() != '\n');
        cout << "Error! Retry input\n";
        cout << "Enter the number: " << endl;
    }
 
Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru