Почему удаляется первая буква строки
Код:
Console.WriteLine("Вводите слова через Enter. Чтобы закончить нажмите Esc");
do
{
string tempStr = Console.ReadLine();
Console.WriteLine(tempStr);
}
while (Console.ReadKey().Key != ConsoleKey.Escape);
Нужно, чтобы по нажатию Esc производился выход из цикла while. Так и происходит, но если я, допустим, ввел "слово", то строка tempStr почему то становится "лово", причем если я до этого уже вводил что либо. Если убрать условие цикла то проблема уходит. Почему так происходит?
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
Вы считываете первый символ следующего ввода здесь:
(Console.ReadKey().Key != ConsoleKey.Escape)
Автор решения: aepot
→ Ссылка
Сделайте просто завершение с пустой строкой, а не по Esc
Console.WriteLine("Вводите слова через Enter. Чтобы закончить, просто нажмите Enter");
do
{
string tempStr = Console.ReadLine();
Console.WriteLine(tempStr);
}
while (tempStr.Length > 0);
