2014-12-30 72 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);