5

TurboPascal プログラムでは、DOS処理された出力を利用し、タブ制御文字を使用して出力に列を形成します。

const Tab = #09;
...
Writeln(X, Tab, F(X));

ただし、呼び出しと使用されたモジュールpauseを介してのような機能を追加しようとすると、処理された出力が壊れ、上記のステートメントは、タブストップで列を形成する代わりに、一般的なタブグリフを書き始めました。ReadKeyCrt

私が理解したように、この現象の原因はAssignCrt(Output)モジュールの初期化時の呼び出しであり、これはどのようにWriteln動作するかを再定義します - 出力に DOS を使用しなくなりましたが、代わりにビデオ BIOS または直接ビデオ メモリ アクセス (DirectVideo値に応じて) を使用します。

どうすれば何を元に戻すAssignCrtことができますか? ドキュメントから知る限り、Crtモジュールには通常の出力を復元する手段がありません。

4

1 に答える 1

9

テキスト ファイル ドライバはの文字をCrtサポートしていません。標準ドライバーに戻すには、次のようにします。tabturbo-pascaldos

Assign(出力、''); // 標準 dos 出力を復元します

Crt ドライバーは、後で次の方法で元に戻すことができます。

AssignCrt(出力);

于 2012-06-11T17:41:50.613 に答える