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

Ввод данных в консоль - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалить элементы массива, кратные 7 http://www.cyberforum.ru/cpp-beginners/thread62229.html
Помогите пожалуйста!) При выполнении работы используются статические массивы. Для организации статических массивов с псевдопеременными границами необходимо объявить массив достаточно большой длины. Затем пользователь вводит реальную длину массива (не больше N) и работает с массивом той длины, которую он сам указал. Остальные элементы (хотя память под них и будет выделена) не рассматриваются....
C++ И снова я - три с половиной задачи. А вот и опять я с подборкой задач которые нужно решить, хотя не думаю что вы их будете решать но всё же пишу 1)Найти сумму элементов геометрической прогрессии с указаннымии номерами.Для прогрессии задаётся первый элемент и её знаменатель.Нахождение элемента прогрессии с указанным номером реализовать в виде функции, которая должна возвращать значение о том, может ли быть найден такой элемент.... http://www.cyberforum.ru/cpp-beginners/thread62222.html
C++ Последовательность после обработки надо записать в массив типа BYTE
Дана последовательность символов типа CHAR и мне эту последовательность после обработки надо записать в массив типа BYTE. Далее массив передается в процедуру, которая анализирует процесс вывода массива в RichEdit. Рассматривается переменная типа WORD, которая представляется в виде битов: если первый бит равен 1 то выводится шестнадцетиричное представление, а если 0 то выводит как есть. Все...
C++ Из Java в C++
нужно перевести код из Java в C++ Задание : Даны целые положительные числа M,N и набор из N чисел. Сформировать матрицу размера M*N , у которой в каждой строке содержится все числа из исходного набора ( в том же порядке). Вот код : public class Matrix { public static void main(Stringargs)
C++ Среднее значение элементов массива.... http://www.cyberforum.ru/cpp-beginners/thread62171.html
вобщем нужно ввести одномерный статический массив из К чисел... определить кол-во элементов массива, значение которых больше среднего значения всех элементов массива...и вывести на экран исходные данные и полученный результат... пока у меня получилось только вот что...и то не совсем работает(((#include <iostream.h> #include <math.h> int main() { const int SIZE = 5; double sales ; cout <<...
C++ Ханойские башни (нужна блок-схема) Помогите сделать блок-схему для игры Ханойские башни. подробнее

Показать сообщение отдельно
surfrider
0 / 0 / 0
Регистрация: 08.11.2009
Сообщений: 4

Ввод данных в консоль - C++

08.11.2009, 20:48. Просмотров 2875. Ответов 9
Метки (Все метки)

Пишу консольное приложение в Visual Studio 2008 на C++. такая проблема:

C++
1
2
3
4
5
6
    while((timerDelay<0)||(timerDelay>20000))
    {
        scanf("%d", &timerDelay);
        if ((timerDelay<0)||(timerDelay>20000))
             printf(text2); //сообщение об ошибке
    }
Надо так: я ввожу данные, если они не удовлетворяют условию, то прога пишет "ошибка" и предлагает ввести данные снова.

На деле выходит так: если я ввожу цифру от 0 до 20000 то все работает, прога выполняется дальше.
Если ввожу цифры вне диапазона, то все работает, прога выводит ошибку и предлагает ввести заново.

Но если я введу мусор, например, букву, то указанный цикл будет выполняться бесконечно, причем БЕЗ ввода! т.е. будет бесконечно выполняться printf(text2);, а scanf("%d", &timerDelay); выполняться не будет, будто бы я уже ввел данные.

в чем дело?

p.s. fgets тоже пробовал, работает, но если ввести мусор и цифру 0, то результаты atoi будут одинаковыми, errno не катит. да и все равно хочу через сканф или син сделать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru