好吧,这个问题可能听起来含糊不清,但我真的没有别的方法可以说出来。希望解释它会帮助你们弄明白我的意思..
我最近决定重新使用Pascal编程语言。几年前我做了一些Delphi,但我真的不喜欢它。无论如何,这个背景足够了..
我被要求做一个简单的控制台计算器。截至目前,我已经完成了整个“界面”。它不会根据位置/输入键读取值,所以我不要键入值并使用数学运算符(+, - ,*,div [因为我已经知道“/”不适用于除法)在值之间。
我的问题是:
我使用console readln(variable)命令读取值。它可以像它应该的那样工作,但现在我想,它们,玩它一点点。当我点击'+, - ,/,*'键时,我想知道是否有办法打破readln()句子。比如说,我有这条线:
readln(value1)
我想要做的是,我会输入任何东西,程序会将它存储在value1变量中,直到我点击其中一个操作键(例如+)。它是这样的:
readnln(value1);
***break it when i hit one of the operators key, '+' for example***
readln(operator)
***break it right after i type the operator, so this would take just one char***
readln(value2)
***This one can be break with the "enter" key hit, so nothing needed here***
这有什么意义吗?我真的希望它能做到。
答案 0 :(得分:0)
你不能(轻松地)使用readln这样做,你需要自己制作这个用c:char读取(c)。 (或者更好,crt.readkey)
对于该原则的精彩版本,请参阅FPC demoes中“gameunit”中的inputstr,用于输入俄罗斯方块演示版高分中的名称。
另请参阅“lister”演示,演示了许多小型文本模式技术。