none
Как сделать проверку правильности ввода данных? RRS feed

  • Вопрос

  • Нужно осуществить задачю в консольном приложении!Я воожу данные типа int , как проверить, что пользователь вводит токло цыфры а не знаки?

    Если можно то покажите еще как провирять правильность ввода стринговых данных!Может есть для этого клас!

    Зарание благодарен!

    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:40 MSDN Forums consolidation (От:Visual C#)
    23 июля 2010 г. 13:18

Ответы

  • Для этого у всех типов данных есть метод TryParse, который попытается преобразовать в нужный тип данных.

    http://msdn.microsoft.com/en-us/library/f02979c7.aspx

    Можно воспользоваться также регулярным выражением, который будет проверять, что все символы строки - цифры:

    \d+

    • Помечено в качестве ответа I.Vorontsov 2 августа 2010 г. 7:56
    23 июля 2010 г. 15:13
  • Если пользователь введет нечто подобное то проверка не пройдет. Далее программа должна напечатать что то вроде "Непонимаю!Мне нужно вводить числа!" и повторить ввод. Вот примерно так:

    1. Ввести строку.

    2. Проверить на правильность.

    3. Если неправильно то  вывести сообщение о непрвильном вводе и перейти на 1.

    4. Продолжить работу.

    Как проверить правильность вам уже объяснили.

     


    This posting is provided "AS IS" with no warranties, and confers no rights.
    • Помечено в качестве ответа I.Vorontsov 2 августа 2010 г. 7:56
    24 июля 2010 г. 17:26
    Модератор

Все ответы

  • Можно выполнить преобразование при помощи класса Convert. Если пользователь ввел не только цифры, но и еще что-то, то возникнет исключение FormatException, отследив которое мы можем сделать все, что нам нужно )) 

          string txt = "1234e5";
          int intBuf=0;
          try
          {
            intBuf=Convert.ToInt32(txt);
          }
          catch (FormatException ex)
          {
            MessageBox.Show(ex.Message);
          }

    23 июля 2010 г. 14:30
  • Для этого у всех типов данных есть метод TryParse, который попытается преобразовать в нужный тип данных.

    http://msdn.microsoft.com/en-us/library/f02979c7.aspx

    Можно воспользоваться также регулярным выражением, который будет проверять, что все символы строки - цифры:

    \d+

    • Помечено в качестве ответа I.Vorontsov 2 августа 2010 г. 7:56
    23 июля 2010 г. 15:13
  • Непонимаю!Мне нужно вводить числа!А если пользователь введет число, потом букву, потом знак, потом опять число,например: 4е56нн65.\.4- то как быть?Как я потом смогу работаь с этим числом?Тоесть я хочу так, чтобы пользователю вибивало, что введено не число, и прозьба ввести корректное число!

    24 июля 2010 г. 11:25
  • Если пользователь введет нечто подобное то проверка не пройдет. Далее программа должна напечатать что то вроде "Непонимаю!Мне нужно вводить числа!" и повторить ввод. Вот примерно так:

    1. Ввести строку.

    2. Проверить на правильность.

    3. Если неправильно то  вывести сообщение о непрвильном вводе и перейти на 1.

    4. Продолжить работу.

    Как проверить правильность вам уже объяснили.

     


    This posting is provided "AS IS" with no warranties, and confers no rights.
    • Помечено в качестве ответа I.Vorontsov 2 августа 2010 г. 7:56
    24 июля 2010 г. 17:26
    Модератор