4 / 4 / 2
Регистрация: 21.05.2015
Сообщений: 44
1

Выловить из входного потока нажатие Enter в незаполненной консоли

11.06.2015, 01:03. Показов 767. Ответов 5
Метки нет (Все метки)

Как можно выловить из входного потока нажатие Enter в незаполненной консоли? Т.е. что бы при нажатии Enter по пустой строке у меня не срабатывал FormatException. Знаю в плюсах можно было перехватить такое.
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
int pA = 0, pB = 0;
        for (; ; )
        {
            if (pA == 0)
            {
                try
                {
                    pA = Int32.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
                    Console.WriteLine("Incorrect insert pA, try again: ");
                    continue;
                }
            }
            if (pB == 0)
            {
                try
                {
                    pB = Int32.Parse(Console.ReadLine());
                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Incorrect insert pB, try again: ");
                    continue;
                }
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2015, 01:03
Ответы с готовыми решениями:

Отловить нажатие клавиши tab и выполнить программное нажатие enter
Подскажите пожл как осуществить подобное действие, в принципе нажатие на клавишу enter я итак знаю...

Слова входного потока
Вывести самые длинные слова входного потока! если во вх потоке самое длинное слово одно,то...

Очистка входного потока
Здравствуйте уважаемые! Пишу игрушку на C#, возникла проблема: в одном месте (в меню выбора...

Подсчет входного потока
Здравствуйте. Начал ознакомление с легендарным языком и сразу же столкнулся с, казалось бы,...

5
308 / 306 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
11.06.2015, 06:54 2
Можно использовать TryParse вместо Parse. Это не будет вызывать исключение...
0
4 / 4 / 2
Регистрация: 21.05.2015
Сообщений: 44
11.06.2015, 13:57  [ТС] 3
В том то и дело, что мне надо вывести сообщение о неправильном вводе во всех случаях, кроме нажатия Enter по пустому полю. TryParse не поможет.
0
308 / 306 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
11.06.2015, 14:07 4
Так ведь можно просто проверять введенное поле
C#
1
if (!string.IsNullOrEmpty(pa))
? Или все еще сложнее?
Вообще я бы на Вашем месте использовал именно TryParse для вывода сообщений.
1. Проверяем полученное сообщение на пустоту;
2. Если проходит TryParse, все в порядке.
3. Если не проходит - сообщение.
1
4 / 4 / 2
Регистрация: 21.05.2015
Сообщений: 44
11.06.2015, 22:19  [ТС] 5
Использовал все же TryParse, а за string.IsNullOrEmpty отдельное спасибо, иногда на msdn пропускают что-то полезное.
0
Администратор
Эксперт .NET
9380 / 4664 / 757
Регистрация: 17.04.2012
Сообщений: 9,511
Записей в блоге: 14
12.06.2015, 17:51 6
MrFluderasT, TryParse возвращает false в случае неудавшегося преобразования, так что на это можно проверять
C#
1
2
3
4
int pA = 0;
if (!Int32.TryParse(Console.ReadLine(), out pA)) {
    Console.WriteLine("Incorrect insert pA, try again:");
}
Добавлено через 1 минуту
Цитата Сообщение от MrFluderasT Посмотреть сообщение
надо вывести сообщение о неправильном вводе во всех случаях, кроме нажатия Enter по пустому полю
Увидел... Тогда без IsNullOrEmpty не обойтись.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2015, 17:51
Помогаю со студенческими работами здесь

Получение информации из входного потока
Привет участвую в олимпиаде, нужно взять информацию из потока: входные данные 5 tourist...

Считывание до конца входного потока
Что значит считывание данных до конца входного потока? Знаю, что на C++ реализуется так. А что...

Копирование входного потока в файл
Всем привет! Я написал программу, которая копирует входной поток в файл, но есть одна загвоздка....

Чтение файла из входного потока
есть код в нем есть путь к файлу, как мне сделать так чтоб я не писал путь к файлу а данные...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru