C # "scanf" с пользовательской консолью - PullRequest
1 голос
/ 24 февраля 2012

Моя программа является приложением Windows Form в C #.

У меня есть IDE интерпретатора / компилятора, который в основном запускает пользовательский язык через настраиваемое окно консоли.

При интерпретации строк вводакак "scanf", как приостановить интерпретацию, пока пользователь не нажимает клавишу ввода?

Пример пользовательского кода для разбора:

1     VAR x AS INT
2     START
3        INPUT: x
4        OUTPUT: x
5     STOP

Например, в тех строках, когда моя программаобрабатывает строку 3, он не обрабатывает другие строки, пока пользователь не введет что-либо и не нажмет enter.

Псевдо-фрагмент для анализа строки за строкой:

foreach (string line in inputCode)
{
   LineType lineType = line.getType();

   if(lineType.InputStatement)
   {
   //wait for input here
   }
   else if(lineType.OutputStatement)
   {
   //analyze output code here
   }
   else if(lineType.AssignmentStatement)
   {
   //do Evaluation here
   }
}

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Console.Readline или Console.ReadKey позволит вам читать ввод с консоли simillar в scanf.

1 голос
/ 24 февраля 2012

Вы должны заставить каждый метод вызывать событие для запуска следующей строки.
Метод INPUT должен инициировать это событие после нажатия пользователем клавиши enter.

...