Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/47: Рейтинг темы: голосов - 47, средняя оценка - 4.85
samir
1

Проверка на то, что введено число, а не символ не работает

25.10.2014, 12:01. Показов 9287. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уходит в бесконечный цикл! Если введен символ, вместо цифр. Как исправить? Нужно, что бы была возможность ввода через цикл, до тех пор пока пользователь не введет число, а затем выполнение остального кода программы!
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
        int n;
do
{ cin.clear(); cin.sync(); 
    std::cout << "Введите до какого значения искать совершенные числа: \n";
    
    if (std::cin >> n)
        break;
    else
    {
        std::cout << "Ошибка ввода\n";
      continue;
    }
}
while (true);
while ( cin.fail() );
        int sum=0;
        for(int i = 5; i < n; i++)
        {       
           sum=0;
                
           for(int j = 1; j < (int)(sqrt(i*1.0))+1; j++)
             if(i % j == 0) 
                 {
                     sum+=j;
                     if (j!=i/2 && j>1) sum+=i/j;
                 }
 
           if(i==sum) cout << 
 i << " -cовершенное число\n";                   
     } return(0)  ;
   
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2014, 12:01
Ответы с готовыми решениями:

Проверка что в текстбокс введен знак, не введена переменная или введено вещественное число
Уважаемые пользователи, помогите. Как вывести сообщение о том, что в текстбокс введен знак, не...

Проверка введено ли число
Подскажите как сделать чтобы при нажатии кнопки проверялись поля Edit, если введено число(как...

Проверить что введено число
Добрый вечер! Как проверить в lazarus, что мы ввели именно число, а не произвольные символы?

Как обнаружить, что введено не целое число?
Например есть прога, я ввожу натуральное число как сделать, если я введу не 112 а 122.3 например,...

5
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
25.10.2014, 12:20 2
cin.ignore() используй вместо async().
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
25.10.2014, 13:23 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
do
{ 
    std::cout << "Введите до какого значения искать совершенные числа: \n";
    char txt[16];
    cin.getline(txt,16);
    if(txt[0]>='0' && txt[0]<='9')
    {
         n=atoi(txt);  
         break;
    }else
        std::cout << "Ошибка ввода\n";
}while(true);
1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.10.2014, 16:19 4
C++
1
2
3
4
5
6
7
int a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
4
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
25.10.2014, 16:30 5
А зачем ты пишешь using namespace std и везде лепишь std???
Или в начале пиши и в других местах std не лепи
Или не пиши и везде std используй
0
D_in_practice
25.10.2014, 16:47     Проверка на то, что введено число, а не символ не работает
  #6

Не по теме:

alsav22, Спасибо

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2014, 16:47

Убедиться, что в TextBox введено число в правильном диапазоне
Ребят, помогите пожалуйста, не знаю что писать в тексте программы. Идея такова: нужно ввести в...

Выскакивает ошибка о том, что введено неправильное число
Я заранее извиняюсь за грубость. Я не хочу выслушивать крики людей, типа :Твой код не эффективен,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru