2012-06-06 2 views
2

У меня есть эта часть кода, которая считывает и отображает вводные строки до ввода hello.Console.ReadLine() на Mono иногда не отображает первые несколько символов ввода

string x; 
do 
{ 
    x = Console.ReadLine(); 
    Console.WriteLine ("{0}\n",x); 
} 
while (x != "hello"); 

Вот пример работы:
enter image description here
Здесь, как только появилась внешняя консоль, я напечатал test первый. Но появился только est. Но, как видно, значение читается правильно, и было выписано test. Когда я набрал hello, он отобразил ello, но прочитал hello и завершил цикл.

Я не смог точно определить, когда это происходит, но некоторые из его времен, потому что я бы слишком быстро набрал входную строку. Иногда он отображает быстро вводимый ввод без каких-либо проблем. На приведенном выше снимке экрана я набрал test с нормальной скоростью.

Является ли это ошибкой или это проблема зависимости?

PS: У меня есть xterm установлен; Я нахожусь на CrunchBang Linux, который основан на Debian; Mono runtime is 2.6.7-5

ответ

1

Похоже, что это ошибка с тем, как оконная система отображает символы со стандартного ввода на вашей платформе. Я бы не беспокоился, пока строка, которую вы получаете, содержит весь текст.

Я не думаю, что Моно здесь виноват. Возможно, я подозревал Mono, если это произошло только во время начальной загрузки, но, поскольку вы заявляете, что это происходит в разное время, я думаю, что это, вероятно, что-то особенное с ОС.

Смежные вопросы