Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C#: перехват ввода с консоли, контроль ввода 
V
    Опции темы
AtaL
Дата 24.10.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



С С#, равно как и с любым C, практически не знакома. Сейчас приходится изучать с нуля.

Стоит следующая задача: 

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

Если можно, то как?
Если можно, то с примером кода. smile  smile 
PM   Вверх
Void
Дата 24.10.2006, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Код
using System;
using System.Text;

class Program
{
    static void Main()
    {
        // буфер, куда будет записываться введённая строка
        StringBuilder sb = new StringBuilder();
        ConsoleKeyInfo key;
        // Console.ReadKey(true) клавишу считывает, но не отображает
        while ((key = Console.ReadKey(true)).Key != ConsoleKey.Enter) // пока не нажали Enter
        {
            char c = key.KeyChar; // нажатая клавиша
            if (Char.IsDigit(c)) // только цифры
            {
                Console.Write(c); // выводим на консоль
                sb.Append(c); // добавляем к буферу
            }
        }
        Console.WriteLine(); // перевод строки
        Console.WriteLine(sb.ToString()); // выводим на экран
    }
}



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
AtaL
Дата 25.10.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо!
PM   Вверх
ivanoid
Дата 3.9.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите как таким же образом вводить числа с типа double...
PM MAIL   Вверх
CYBERDREAM
Дата 3.9.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



Код

       Char sep = System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];//разделитель целой и дес....
        Boolean addedOnce=false;
        while ((key = Console.ReadKey(true)).Key != ConsoleKey.Enter) // пока не нажали Enter
        {
            char c = key.KeyChar; // нажатая клавиша
            if (Char.IsDigit(c)) // только цифры
            {
                Console.Write(c); // выводим на консоль
                sb.Append(c); // добавляем к буферу
            }
            else if (!addedOnce && c==sep) // разделитель
            {
                addedOnce = true;
                Console.Write(c); // выводим на консоль
                sb.Append(c); // добавляем к буферу
            }
        }



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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