При использовании Console.Read() реализация, похоже, думает, что как только вы нажмете enter, вы ввели достаточно байтов для вечности чтения. Например, если Read вызывается дважды в строке, вы не можете ввести одно значение в одну строку, нажмите enter и перейдите к следующему. Даже если вы ввели только один символ, Read просто возвращает ноль (Edit: or one. Я не уверен). У меня тоже есть проблема с ReadLine. Я пытаюсь сохранить консоль открытой для ввода после завершения программы (у меня есть приложение WPF и используется AllocConsole вручную) и/или запрашивать пользователя для каждого отдельного фрагмента ввода. Но это не работает. Есть ли какая-нибудь кнопка, чтобы попросить ее заблокировать, если нет ввода?Любопытная проблема с консольным вводом в C#
Я написал интерпретатор Brainfuck, а примеры программ из Wiki приводят к предполагаемому результату, если они не используют ввод.
Что я хочу сделать, это ввести один символ, нажать enter, получить этот символ как символ, повторить.
Можете ли вы поделиться каким-то кодом, Console.ReadLine должен принимать ввод до ввода не будет нажат, а затем последующее Console.ReadLine будет принимать дополнительные материалы до введите нажатие. –
Но тогда у меня будет строка. Чтение возвращает int. – Puppy
, поэтому вы хотите читать по одному ключу за раз? Если так, то Console.ReadKey может быть тем, что вы ищете? –