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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
#1

При вводе в строку цифр буквы выдается сообщение «Это не цифра».как? - C++

11.01.2012, 09:49. Просмотров 1254. Ответов 14
Метки нет (Все метки)

Помогите написать программу для выполнения следующих действий. При вводе в строку цифр буквы выдается сообщение «Это не цифра».
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 09:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При вводе в строку цифр буквы выдается сообщение «Это не цифра».как? (C++):

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл? - C++
void mainmenu() { cout << "Введи число" << endl; cin >> choice; if (choice == 1) { cout << "Hello" << endl; } ...

Как при вводе не переносить двоеточие на новую строку? - C++
Задача: Написать программу, в которой осуществляется перегрузка операции сложения. Разработать класс time, в состав которого включить...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал - C++
Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва"...

Выдать ошибку при вводе буквы - C++
Как добавить еще одну проверку на символы? int read( int a, int b ) { int choice; do { cin>> choice; ...

Распознавание цифр при вводе - C++
Здравствуйте, помогите пожалуйста решить задачу. Нужно спрашивать у пользователя числа до тех пор, пока он не введет букву e. При...

При вводе пропускает первую строку - C++
cout<<"\nVvedite text: "; for (int i=0; i < n; i++) { cout<<"Vvedite"<<i+1<<"stroku\n"; gets(txt); fprintf(f1, "%s\n",...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ruslan_abel
33 / 33 / 4
Регистрация: 06.05.2011
Сообщений: 91
11.01.2012, 10:24 #2
Вот
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
#include <iostream>
#include <limits>
 
using namespace std;
 
int main()
{
    setlocale( 0, "rus" );
    cout << "Введите число: ";
    int number;
    if ( !( cin >> number ) )
    {
        cout << "Это не цифра!" << endl;
        // очистка потока ввода
        cin.clear();
        cin.ignore( numeric_limits<streamsize>::max(), '\n' );
    }
    else
    {
        cout << "Вы ввели число: " << number << endl;
    }
 
    //system( "PAUSE" );
 
    return 0;
}
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
11.01.2012, 10:36  [ТС] #3
Не работает.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
11.01.2012, 10:40 #4
все там работает. не надо грязи
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
11.01.2012, 10:45  [ТС] #5
ну у кого то может и работает,а у меня нет.
ruslan_abel
33 / 33 / 4
Регистрация: 06.05.2011
Сообщений: 91
11.01.2012, 15:37 #6
AnnaKom, какая ошибка, скажите хотя бы и какой компилятор?
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
11.01.2012, 15:39  [ТС] #7
все заработало
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.01.2012, 15:42 #8
C
1
2
3
4
5
6
7
8
9
char s[BUFSIZ];
int i;
 
for ( i = 0 ; i < BUFSIZ ; ++i )
{
    s[i] = getc (stdin);
    if ( !isdigit(s[i]) )
        printf ("Error");
}
Добавлено через 38 секунд
Хотя все равно будет буферизация, поэтому лучше getchar ()
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
12.01.2012, 13:45  [ТС] #9
Помогите написать программу для выполнения следующих действий. При вводе в строку цифр буквы выдается сообщение «Это не цифра».

 Комментарий модератора 
Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.01.2012, 14:21 #10
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
  
int main ()
{
   std::string s;
   char c;
 
   while ( (c = std::cin.get ()) != '\n' )
       if ( !isdigit (c) )
           std::cout << " No dig " << std::endl;
       else
           s.push_back(c);
 
   std::cout << s << std::endl;
   std::system("pause");
   return 0;
}
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
12.01.2012, 14:26  [ТС] #11
не совсем...надо чтобы сражу же при вводе символа появлялось сообщение
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.01.2012, 14:33 #12
Цитата Сообщение от AnnaKom Посмотреть сообщение
надо чтобы сражу же при вводе символа появлялось сообщение
А признак окончания ввода?
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
12.01.2012, 14:37 #13
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
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
 
int main ()
{
    setlocale(LC_ALL, "");
    char ch;
    string str;
    do
    {
        if(isdigit((ch = _getche())))
        {
            str = str + ch;
        }
        else
            cout << endl << "Не цифра!" << endl;
    }
    while (ch != 'e'); // Пока не нажата английская e (end)
    cout << "Не цифра!" << endl;
    cout << str << endl;
    system("pause");
}
AnnaKom
1 / 1 / 0
Регистрация: 11.01.2012
Сообщений: 22
12.01.2012, 14:41  [ТС] #14
объясняю как поняла я:вводим например 12345р...и как только ввели р выводится сообщение,после нажимаем любую клавишу и все...конец программы.
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
12.01.2012, 16:24 #15
ну можно попробывать чере оператор getch(); правдо не знаю как он там на С++ я Си програмирую
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2012, 16:24
Привет! Вот еще темы с ответами:

Обрезать строку при вводе через fgets - C++
Всем доброго времени суток! Столкнулся с такой проблемой - заполняю список значений следующей процедурой void addToQueue(T_Queue...

Ошибка в коде. При первом вводе буквы, вводить приходится два раза - C++
Подскажите что не так в коде.При первом вводе буквы,вводить приходиться два раза,и так повторяется периодически.Плюс выводится &quot;нет&quot; при...

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. - C++
Помогите,плиз... Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая,...

Ввод чисел, при вводе нуля - вывод количества цифр, идущих по порядку - C++
Задача: пользователь вводит числа, при вводе нуля необходимо вывести кол-во чисел, которые шли по порядку(например: 2867524560 --&gt;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.01.2012, 16:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru