Знаки "?" в консоли - C#
Формулировка задачи:
Здравствуйте, господа!
С проблемкой столкнулся, совершенно непонятной Вкратце: есть программка (консольное приложение), предназначена для обработки штрих-кода. Штрих-код приходит со сканера, который работает в режиме HID девайса, т.е. по сути он передает коды нажатых клавиш и Enter в конце. Работа полностью аналогична тому, если бы я набрал штрих-код на клавиатуре и жамкнул Enter (как я собственно и делаю). За чтение штрих-кода отвечает следующий кусочек:
Т.е. читаем из консоли символ, если это Enter (13), то создаем и стартуем поток для обработки, иначе - прибавляем прочитанный символ к строчной переменной FullBarCode. Все просто как мычание.
Мозг ломается на том, что через несколько вводов (от одного до трех) вместо вводимых символов в консоли появляются знаки вопроса. Т.е. запускаем программу, вводим " qwerty " - видим " qwerty ", нажимаем Enter и " qwerty " улетает на обработку. Далее снова вводим " qwerty " - видим "??????". По нажатию на Enter на обработку улетает мусор. Коды клавиш (переменная "а", брекпоинт на строке "if (a == 13)") меняются (в первом случае код клавиши q = 113, во втором - 1193). Вот не могу понять - как побороть
Спасибо за внимание к моей проблеме.
FullBarCode = ""; while (true) { char a = Console.ReadKey().KeyChar; if (a == 13) { Thread ProcessThread = new Thread(new ParameterizedThreadStart(ProcessFullBarCodeFromTR)); ProcessThread.IsBackground = true; ProcessThread.Start(FullBarCode); FullBarCode = ""; Console.Clear(); } else FullBarCode += a; }
Решение задачи: «Знаки "?" в консоли»
textual
Листинг программы
blabla+ #10#13 + blabla
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д