コンソール出力
Write / WriteLn
Pascalで文字列を出力するには組み込みプロシージャの Write または WriteLn を使用します。WriteLn は文末に自動で改行文字を付加します。
これはPascalの柔軟性に優れた組み込み手続きです。任意の数・任意のデータ型の引数を渡せ、出力時に自動的に文字列へ変換します。数値の桁揃え幅や浮動小数点数の精度を制御する専用の書式構文にも対応しています。
WriteLn('Hello world!');
// 整数式の出力
WriteLn('You can output an integer: ', 3 * 4);
// 整数を右詰め、全体幅10文字
WriteLn('You can pad an integer: ', 666:10);
// 浮動小数点数書式:全体幅1、小数部4桁
WriteLn('You can output a float: ', Pi:1:4);Code language: JavaScript (javascript)
手動改行
LineEnding 定数
一つの文字列内に手動で改行を挿入したい場合は、Free Pascal標準ライブラリが提供する LineEnding 定数を使用します。Castle Game Engineには更に短い NL 定数も用意されています。
Pascalの文字列はバックスラッシュによるエスケープ文字を解釈しません(\n は無効)。以下の記述は誤った例です:
// 誤り:\nは改行として認識されない
WriteLn('One line.\nSecond line.');Code language: JavaScript (javascript)
正しい記述方法は2種類あります:
// 改行定数を連結
WriteLn('One line.' + LineEnding + 'Second line.');
// WriteLnを2回分けて記述(簡潔で推奨)
WriteLn('One line.');
WriteLn('Second line.');Code language: JavaScript (javascript)
注意事項
WriteLnはコンソールアプリ専用
Write/WriteLn はコンソールアプリケーションでのみ有効です。メインソースファイルの先頭にコンパイラディレクティブを記載する必要があります:
{$apptype CONSOLE}Code language: PHP (php)
GUIモードにしてはいけません:
{$apptype GUI} // GUIアプリでWriteLnを直接呼び出すとエラーが発生Code language: PHP (php)
- Unix/Linux/macOS:一部環境ではGUIアプリから出力してもクラッシュしないが、出力内容は意味がありません;
- Windows:GUIグラフィックアプリでWriteLnを実行すると実行時エラーが発生します。
Castle Game Engine ログ出力規約
Castle Game Engineで開発する際は、WriteLnを直接デバッグ出力に使用してはなりません。専用のログ出力APIを利用してください:
WriteLnLog:通常デバッグログWriteLnWarning:警告ログ
エンジンはログを自動的に適切な出力先に分配します:
- Unix系OS:標準コンソール出力 stdout;
- Windows GUIゲームアプリ:ローカルログファイルへ出力;
- Androidプラットフォーム:Androidシステムログに統合、
adb logcatで確認可能。
用語対照表
| 英語原文 | Pascal用語解説 |
|---|---|
| Write / WriteLn | 改行なし出力 / 改行付き出力 |
| LineEnding | システム改行定数(クロスプラットフォーム対応) |
| NL | Castle簡略改行定数 |
| padding | 数値桁埋め・桁揃え幅 |
| precision | 浮動小数点数小数精度 |
| {$apptype CONSOLE} | コンソールアプリコンパイラ指示子 |
| {$apptype GUI} | GUIアプリコンパイラ指示子 |
| adb logcat | Androidログ確認ツール |
| standard output | 標準出力ストリーム(stdout) |
本章サンプルコード
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
{$R+}
begin
WriteLn('Hello world!');
// 整数式の出力
WriteLn('You can output an integer: ', 3 * 4);
// 整数を右詰め、全体幅10文字
WriteLn('You can pad an integer: ', 666:10);
// 浮動小数点数書式:全体幅1、小数部4桁
WriteLn('You can output a float: ', Pi:1:4);
// 誤り:\nは改行として認識されない
// WriteLn('One line.\nSecond line.');
// 改行定数を連結
WriteLn('One line.' + LineEnding + 'Second line.');
// WriteLnを2回分けて記述(簡潔で推奨)
WriteLn('One line.');
WriteLn('Second line.');
end.Code language: PHP (php)


上記のコンパイラ指示子を記述する必要があります
Previous: ループ
Next: 数値から文字列への変換