Знаки "?" в консоли - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, господа! С проблемкой столкнулся, совершенно непонятной Вкратце: есть программка (консольное приложение), предназначена для обработки штрих-кода. Штрих-код приходит со сканера, который работает в режиме HID девайса, т.е. по сути он передает коды нажатых клавиш и Enter в конце. Работа полностью аналогична тому, если бы я набрал штрих-код на клавиатуре и жамкнул Enter (как я собственно и делаю). За чтение штрих-кода отвечает следующий кусочек:
            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;
                
            }
Т.е. читаем из консоли символ, если это Enter (13), то создаем и стартуем поток для обработки, иначе - прибавляем прочитанный символ к строчной переменной FullBarCode. Все просто как мычание. Мозг ломается на том, что через несколько вводов (от одного до трех) вместо вводимых символов в консоли появляются знаки вопроса. Т.е. запускаем программу, вводим " qwerty " - видим " qwerty ", нажимаем Enter и " qwerty " улетает на обработку. Далее снова вводим " qwerty " - видим "??????". По нажатию на Enter на обработку улетает мусор. Коды клавиш (переменная "а", брекпоинт на строке "if (a == 13)") меняются (в первом случае код клавиши q = 113, во втором - 1193). Вот не могу понять - как побороть Спасибо за внимание к моей проблеме.

Решение задачи: «Знаки "?" в консоли»

textual
Листинг программы
blabla+ #10#13 + blabla

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы