在TurboPascal程序中,我利用了DOS处理的输出,并使用制表符控制字符在输出中形成列:
const Tab = #09;
...
Writeln(X, Tab, F(X));
但是,当我尝试通过ReadKey
调用添加类似pause
的功能并使用Crt
模块时,处理后的输出中断了,上面所示的语句开始编写通用的 Tab 字形,而不是在制表位处形成列。
正如我所发现的,这种现象的来源是模块初始化时的调用AssignCrt(Output)
它重新定义了Writeln
的工作方式 - 它不再使用 DOS 进行输出,而是使用视频 BIOS 或直接视频内存访问(取决于DirectVideo
值)。
如何撤消AssignCrt
所做的一切?据我从文档中所知,Crt
模块不提供恢复正常输出的方法。
Crt
文本文件驱动程序不支持 turbo-pascal
中的tab
字符。要恢复标准dos
驱动程序,请执行以下操作:
分配(输出,''); 恢复标准 dos 输出
稍后可以通过以下方式恢复 Crt 驱动程序:
分配Crt(输出);