2014-12-30 107 views
2

我生成一个表到控制台,它很好,但是当我添加"uses crt;",我使用chr(ord.value);,还有语言特殊字符变得狂野的标签,行等,所以我想它以某种方式改变编码。Crt库更改控制台编码,pascal

我的工作在Win7,FPC IDE v.2.6.4

另一个奇怪的事情是,当我运行该程序时,它开始在cmd.exe经典的Windows控制台,但它会自行关闭后如10秒内一个新的运行是在位于FPC另一个控制台启动窗口(它本身不关闭)。

的wierdest的事情是,"uses crt;"的增加并没有对写入cmd.exe经典的Windows控制台表什么...

所以我的解决办法是对子级无论是工作,如何改变编码的位于FPC窗口的控制台或如何防止cmd.exe自行关闭。

希望有人可以帮助我,我会很感激。

+0

https://en.wikipedia.org/wiki/Code_page_437 –

+0

@HansPassant感谢回答,但没有什么写CRT库更改编码。 –

+3

你认为它改变了编码是错误的。控制台应用程序的默认代码页是437.您的编辑器可能使用的不是相同的代码页。 Crt太原始了,不能给你一个改变它的选项,你必须以某种方式调用SetConsoleCP()。或者在运行您的应用程序之前使用CHCP命令。并更改字体。 –

回答

0

如果您不使用Crt,则输出使用标准的DOS例程。 Crt单元重定向输入输出将标准文本文件转换为CRT而不是DOS的标准输入和输出文件。但可以明确指明回来通过执行:

Assign(Input, ''); Reset(Input); 
Assign(Output, ''); Reset(Output);