如何取消分配Crt(输出)?

5
在TurboPascal程序中,我利用DOS的处理输出功能,并使用Tab控制字符来形成输出中的列:
const Tab = #09;
...
Writeln(X, Tab, F(X));

然而,当我试图通过调用ReadKey并使用Crt模块添加类似于pause的功能时,处理的输出出现了问题,并且上面说明的语句开始在制表位处生成通用的Tab符号而不是形成列。
据我所知,这种现象的根源是模块初始化时AssignCrt(Output)的调用,它重新定义了Writeln的工作方式 - 它不再使用DOS进行输出,而是改为使用视频BIOS或直接访问视频内存(取决于DirectVideo的值)。
我该如何撤消AssignCrt所做的操作?据文档所述,Crt模块没有提供恢复正常输出的方法。
1个回答

9

Crt文本文件驱动程序不支持在turbo-pascal中使用tab字符。 要恢复标准的dos驱动程序,请按照以下步骤操作:

Assign(Output,''); // 恢复标准的dos输出

您随后可以通过以下方式重新启用Crt驱动程序:

AssignCrt(Output);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接