Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как проверить вводимые данные 
:(
    Опции темы
ABPOPA
Дата 30.3.2005, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.3.2005

Репутация: нет
Всего: нет



ввожу cin'ом данные в масив.

как мне зделать проверку того что это цифры.
проблема в том что вводятся не только одно разрядные цифры(1, 2, 3, и т.д.) но и много разрядные(22, 54, 68,100 и т.д.)

в вожу в цикле.
хотелось бы чтоб после ввода "БУКВЫ" и нажатия Ентра он говорил что ошибка и возврашал обратно к водду тогоже числа что и ввелось с ошибкой.


главное я хочу узнать как проверить данные,а остальное второстепенно.
PM   Вверх
bel_nikita
Дата 30.3.2005, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



std::isdigit

еще можно так для Си-строки:
Код

BOOL _isdigit(const char* p) const
{
  for ( ; *p!=NULL; ++p ) { if (!isdigit(*p)) break; }
  return !*p;
}




--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
ABPOPA
Дата 30.3.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.3.2005

Репутация: нет
Всего: нет



брр

а поиснить можеш?
PM   Вверх
np9mi7
Дата 30.3.2005, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



блин, да почитай ты про потоки!!!
вот смотри например ПОТОКИ, меня тут очень хорошо пристыдили за незнание потоков...


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
ABPOPA
Дата 30.3.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.3.2005

Репутация: нет
Всего: нет



ту np9mi7
Я и не утверждал что я их знаю




Код

#include <iostream>
#include <string>
#include <exception>
#include <stdexcept>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::invalid_argument;
using std::exception;
using std::getline;

int main()
{
   int chislo;
   cout << "Vvedite chislo" << endl;

   try
   {
        cin >> chislo;
        if(cin.fail())
        {
               cin.clear();
              string badValue;
              getline(cin, badvalue);
              throw invaluid_argument( "Ne verno vvedeny dannye" + badVaue);
          
        }
   }
   catch(exception &a)
   {
     cout << a.what() << endl;
   }
   return 0;
}



error C2065: 'badvalue' : undeclared identifier
error C2065: 'invaluid_argument' : undeclared identifier
error C2065: 'badVaue' : undeclared identifier

если ты понял как это работает,то обьясни.
это в принципе то что мне нужно
PM   Вверх
ABPOPA
Дата 30.3.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.3.2005

Репутация: нет
Всего: нет



все спс.разобрался с кодом.
там просто пару ошибок синтаксиса
PM   Вверх
pablo
Дата 30.3.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



badVAlue ето просто строка, т.к если вместо целого числа ввести букву, то поток закрывается и надо как - то не верные данные из него выковырять
getline при её помощи ты вытаскиваеш из потока ошибочные данные и генерируеш исключение invalid_argument (явно) т.к при такой ошибке он генерится сам.
Ну и перехватываеш его потом. Перед генерацией исключения обятельно отчисти поток, без этого всио пропало.
Возможные ошибки могуыт возникнуть из - за невключения файлов.

Включи:
<exception>
<stdexcept>

using std::invalid_argument;
using std::exception;


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
ABPOPA
Дата 1.4.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.3.2005

Репутация: нет
Всего: нет



using std::getline;


в классе работать не хочет smile
PM   Вверх
pablo
Дата 4.4.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Если не хочет работать то чё пишет компилятор ???


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.