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

ввод букв вместо цифр - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
de_hack
 Аватар для de_hack
6 / 6 / 1
Регистрация: 17.09.2011
Сообщений: 78
17.09.2011, 21:29     ввод букв вместо цифр #1
Привет. Я новичок. Подскажите как сделать так чтобы, в консольной программе при вводе букв вместо цифр выдавалось сообщение об ошибке.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
17.09.2011, 21:35     ввод букв вместо цифр #2
C++
1
2
3
int num = 0;
if(! scanf("%d", &num))
      puts("Error !!!");
de_hack
 Аватар для de_hack
6 / 6 / 1
Регистрация: 17.09.2011
Сообщений: 78
17.09.2011, 21:36  [ТС]     ввод букв вместо цифр #3
Спасибо большое
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.09.2011, 21:57     ввод букв вместо цифр #4
xAtom, а это ничего, что scanf() в случае ошибки EOF возвращает? Неправильная конструкция.
C
1
2
if ( scanf("%d", &number) != 1 )
  // error
de_hack
 Аватар для de_hack
6 / 6 / 1
Регистрация: 17.09.2011
Сообщений: 78
18.09.2011, 11:02  [ТС]     ввод букв вместо цифр #5
Вот код программы. Скомпилировал вроде правильно работает. Но почему то проверку на ввод букв не проходит. Мне нужно чтобы после проверки управление перешло к началу программы.


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
#include <iostream>
using namespace std;
int main()
{   
    int n;
    bool exit = false;
    while(true) 
    {
    cout << " Input cakes number: ";
    cin >> n;
    cout << " I want to eat: " << n;
    int o = n % 100;
    if (o > 1)
    cout << " cakes." << endl;
    else
    {
        switch(o % 10)
        {
        case 0:
             cout << " cakes." << endl;
             break;
        case 1:
             cout << " cake." << endl;
             break;
                       }
    if ( !scanf ("%d", &n))
    {
   puts ("Enter a number, please.");
   }
    }
}
        system ("PAUSE");
     }
Yandex
Объявления
18.09.2011, 11:02     ввод букв вместо цифр
Ответ Создать тему
Опции темы

Текущее время: 23:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru