input - 将输入语句打印到特定行(?)
问题描述
为 qbasic 类做一个项目,我需要第一行来询问输入,即“输入预计的耗尽率:”,之后它将在其下运行一个循环,其中我需要它在同一行上打印另一个输入语句第一行,“输入另一个预计的消耗率或 0 退出:”我遇到的问题是,如果我使用 LOCATE,它将直接在该语句下打印循环的下一个结果,当 id 喜欢它打印在最后一个结果下方时在列表中,位于最低的未使用空间,并且不会清除旧文本的顶行。我知道部分原因是 LOCATE 由于循环而重复,但我真的被卡住了。对不起格式我是新人:)
CLS
DIM percent AS DOUBLE
DIM ozLevel AS DOUBLE
DIM counter AS INTEGER
DIM change AS DOUBLE
INPUT "enter a projected depletion rate, or 0 to quit: ", percent
PRINT
PRINT TAB(2); "Loss"; TAB(17); "Final Ozone"
PRINT TAB(2); "Rate"; TAB(10); "Years"; TAB(17); "Concentration"
change = (percent / 100)
DO WHILE percent <> 0
counter = 0
ozLevel = 450
DO UNTIL ozLevel < 200
counter = counter + 1
ozLevel = ozLevel - (ozLevel * change)
LOOP
PRINT USING "##.##%"; TAB(2); percent;
PRINT TAB(10); counter;
PRINT USING "###.##"; TAB(17); ozLevel;
LOCATE 1, 1
INPUT "enter new projection: ", percent
change = (percent / 100)
LOOP
LOCATE 1, 35
PRINT "DONE"
END
解决方案
QBasic 具有CRSLIN
告诉您光标在哪里的功能。
确保打印第三个结果执行回车和换行。只需删除;
现在将索引存储到下一个可用行的合适变量中,例如TableRow。
像以前一样在屏幕的第一行输入。
在每个后续输入之后,使用此变量将光标定位在下一个可用行上。
...
PRINT USING "###.##"; TAB(17); ozLevel
tablerow = CRSLIN
LOCATE 1, 1
INPUT "enter new projection: ", percent
change = (percent / 100)
LOCATE tablerow, 1
LOOP
...
推荐阅读
- javascript - Sweetalert2 电子邮件验证不起作用
- c++ - ASLR 和 VirtualAlloc 的奇怪行为
- angular-material - 如何动态更新嵌套的mat-tree
- javascript - setState 在 for 循环中设置相同的对象
- ionic-framework - 取消订阅 observables 的 Ionic 和 AngularFire2 最佳实践
- here-api - 使用 Here Maps 检查路线中的收费公路
- r - 在 ubuntu 16.04 上安装 rgdal
- php - jQuery Validate 在 PHP 中无法正常工作
- python - 如何切片 MultiIndex 和列?
- c# - C# WFP 不确定进度条动画