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

Проверка ввода чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать функцию которая получает цифру и возвращает строку? http://www.cyberforum.ru/cpp-beginners/thread789489.html
Лучше всего наглядный пример, пожалуйста. :) Благодарю всех заранее.
C++ Посоветуйте литературу Извиняюсь, наверняка не туда пишу... Кто знает хорошую литературу по теории информатики? Мне нужна именно теория. Не книга про C++ или Pascal, не книга о том, как создать папку или открыть Paint в Windows, и не сборник задач для подготовки к ЕГЭ. Именно книга по теории (начиная от перевода в двоичную систему счисления и формулами Хартли и заканчивая какими-нибудь базами данных), которая бы... http://www.cyberforum.ru/cpp-beginners/thread789484.html
C++ Множества
Составить программу, возвращающую множество, за- данное некоторой последовательностью произвольных чи- сел натурального ряда, вводимых с клавиатуры. Например: А1 = { 1 , 3, 17, 9, 8, ...}
Массив (системы счисления. Прочитать, вывести...) C++
Прочитать натуральное число типа int, основание системы счисления р, где p <37, и вывести:а) р-ный запись числа;б) значение р-ных цифр в виде многочлена с степенями числа р; возведение в степеньобозначить символом ^, умножения - символом *. По цифры 0 соответствующий степень числа р невыводится, а за 1 выводится без цифры как множителя, например, числа 1407 и основы 10выводится многочлен 10 ^ 3 4...
C++ Три функции (ввод значений элементов массива, вывод, сравнение двух массивов) http://www.cyberforum.ru/cpp-beginners/thread789475.html
Написать программу с тремя функциями: ввод значений элементов массива целых (возможно,значение получают не все элементы), вывод, сравнение двух массивов. В главной функцииввести два массива длиной не более 10, вывести их и результат их сравнения (массивы уровне,имеют разные длины, отличаются некоторыми элементами).
C++ Многомерные массивы. Написать функцию построения по действительными числами квадратной матрицы 1) Написать функцию построения по действительными числами a1, a2, ..., an (n <= 50) такой квадратной матрици . Спасибо С ++ подробнее

Показать сообщение отдельно
snyppimylt
 Аватар для snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
19.02.2013, 23:37  [ТС]     Проверка ввода чисел
Проверил я еще раз свой исходный код и написал так как было в оригинале, т.е. в комманде Варфейс и Блеквуд так же:

C++
1
2
3
4
5
if(cin.fail() || black.PLAYER[i]>70 || black.PLAYER[i]<1)
            {cout<<"\n...еще раз...\n\n"; cin.clear(); cin.ignore(4,'\n'); continue;}
            
            else
            {cin.ignore(10,'\n'); break;}
Вот оригинал, работает стабильно, видимо все дело в невнимательности

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
int main()
{
    setlocale(0,"RUS");
 
char ch;
WvsB black;
WvsB warfc;
 
cout<<"ДЕМОНСТРАЦИЯ РЕЖИМА АВТОБАЛАНСА ИГРЫ WARFACE\n\nВВЕДИТЕ НОМЕР РАНГА У КАЖДОГО ИГРОКА. АВТОБАЛАНС РАСЧИТАН НА ИГРУ 8х8\n\n";
cout<<" ------------------ ДИАПАЗОН РАНГОВ ОТ 1 ДО 70 ----------------------\n";
    while(ch!='\r'){
 
        cout<<"\nКОМАНДА BLACKWOOD\n\n";
 
        for(int i=0,b=1; i<N; ++i,b++)
        {
            while(true){
            cout<<"НОМЕР РАНГА -"<<" ИГРОК "<<b<<" ";
 
            cin>>black.PLAYER[i];
            if(cin.fail() || black.PLAYER[i]>70 || black.PLAYER[i]<1)
            {cout<<"\n...еще раз...\n\n"; cin.clear(); cin.ignore(4,'\n'); continue;}
            
            else
            {cin.ignore(10,'\n'); break;}
 
            }       
        }
 
 
        cout<<"\nКОМАНДА WARFACE\n\n";
 
        for(int j=0,g=1; j<N; j++,g++)
        {
            while(true){
            cout<<"НОМЕР РАНГА -"<<" ИГРОК "<<g<<" ";
 
            cin>>warfc.PLAYER1[j];
            if(cin.fail() || warfc.PLAYER1[j]>70 || warfc.PLAYER1[j]<1)
            {
                cout<<"\n...еще раз...\n\n"; 
                cin.clear(); 
                cin.ignore(4,'\n'); 
                continue;
            }
            
            else
            {
                cin.ignore(10,'\n'); 
                break;
            }
 
        }       
    }
 
    cout<<"\n\n...Enter для выхода...\n";
    ch=getch();
}
 
return 0;
}
Добавлено через 2 минуты
Просто мне казалось странным, почему 2 одинаковой проверки работали не стабильно как в скриншоте который я в теме предоставил.
 
Текущее время: 03:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru