C#”;scanf”;使用自定义控制台

本文关键字:自定义 控制台 scanf | 更新日期: 2023-09-27 18:25:53

我的程序是C#中的Windows窗体应用程序。

我有一个解释器/编译器IDE w/c,基本上通过自定义控制台窗口运行自定义语言。

当解释像"scanf"这样的输入行时,如何在用户不按enter键的情况下暂停解释?

要解析的自定义代码示例:

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

例如,在这些行中,当我的程序处理第3行时,它不会处理其他行,直到用户输入一些东西并按下回车键。

逐行解析的伪代码段:

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
   }
}

C#”;scanf”;使用自定义控制台

Console.Readline或Console.ReadKey将允许您从控制台读取类似于scanf的输入。

您应该让每个方法引发一个事件来激发下一行
INPUT方法应该在用户按下回车键后激发该事件。