Saída de console
Write / WriteLn
Para exibir cadeias de caracteres em Pascal, use os procedimentos nativos Write ou WriteLn; WriteLn adiciona automaticamente uma quebra de linha no final do texto.
Trata-se de um procedimento nativo muito flexível no Pascal: aceita uma quantidade ilimitada de argumentos de qualquer tipo de dado, converte valores para cadeia automaticamente ao imprimir e suporta uma sintaxe de formatação especial para controlar a largura de preenchimento numérico e a precisão de números de ponto flutuante.
WriteLn('Hello world!');
// Exibir expressão inteira
WriteLn('You can output an integer: ', 3 * 4);
// Inteiro alinhado à direita com largura total de 10 caracteres
WriteLn('You can pad an integer: ', 666:10);
// Formato de ponto flutuante: largura total 1, 4 casas decimais
WriteLn('You can output a float: ', Pi:1:4);Code language: JavaScript (javascript)
Quebras de linha manuais
Constante LineEnding
Se precisar inserir uma quebra de linha manual dentro de uma única cadeia, utilize a constante LineEnding da biblioteca padrão Free Pascal; o Castle Game Engine também disponibiliza a constante abreviada NL.
As cadeias Pascal não interpretam sequências de escape com barra invertida (\n não tem efeito). O exemplo abaixo está incorreto:
// Errado: \n não é reconhecido como quebra de linha
WriteLn('One line.\nSecond line.');Code language: JavaScript (javascript)
Duas formas corretas:
// Concatenar constante de quebra de linha
WriteLn('One line.' + LineEnding + 'Second line.');
// Duas chamadas separadas de WriteLn (mais limpo e recomendado)
WriteLn('One line.');
WriteLn('Second line.');Code language: JavaScript (javascript)
Observações importantes
WriteLn só funciona em aplicativos de console
Write/WriteLn só funcionam em aplicativos de console. Você deve declarar a diretiva de compilação no início do arquivo principal do programa:
{$apptype CONSOLE}Code language: PHP (php)
Não utilize o modo GUI:
{$apptype GUI} // Chamar WriteLn diretamente em programas GUI causará errosCode language: PHP (php)
- Unix/Linux/macOS: em alguns cenários programas GUI não travam ao imprimir, mas a saída não tem utilidade;
- Windows: executar WriteLn diretamente em aplicativos gráficos GUI dispara erros de tempo de execução.
Padrões de log do Castle Game Engine
Ao desenvolver com o Castle Game Engine, não use WriteLn diretamente para mensagens de depuração. Utilize as funções de log dedicadas:
WriteLnLog: logs de depuração comunsWriteLnWarning: logs de aviso
O motor redireciona automaticamente os logs para os destinos correspondentes:
- Sistemas Unix: saída de console padrão stdout;
- Jogos GUI do Windows: gravação em arquivos de log locais;
- Plataforma Android: integração com logs do sistema Android, visualizável via
adb logcat.
Tabela de correspondência de termos
| Termo original em inglês | Significado em Pascal |
|---|---|
| Write / WriteLn | Saída sem quebra de linha / Saída com quebra de linha |
| LineEnding | Constante de quebra de linha do sistema (multiplataforma) |
| NL | Constante abreviada de quebra de linha do Castle |
| padding | Preenchimento de campos numéricos, largura de alinhamento |
| precision | Precisão decimal de números de ponto flutuante |
| {$apptype CONSOLE} | Diretiva de compilação para aplicativos de console |
| {$apptype GUI} | Diretiva de compilação para aplicativos gráficos |
| adb logcat | Ferramenta de visualização de logs Android |
| standard output | Fluxo de saída padrão (stdout) |
Exemplo completo desta seção
{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
{$R+}
begin
WriteLn('Hello world!');
// Exibir expressão inteira
WriteLn('You can output an integer: ', 3 * 4);
// Inteiro alinhado à direita com largura total de 10 caracteres
WriteLn('You can pad an integer: ', 666:10);
// Formato de ponto flutuante: largura total 1, 4 casas decimais
WriteLn('You can output a float: ', Pi:1:4);
// Errado: \n não é reconhecido como quebra de linha
// WriteLn('One line.\nSecond line.');
// Concatenar constante de quebra de linha
WriteLn('One line.' + LineEnding + 'Second line.');
// Duas chamadas separadas de WriteLn (mais limpo e recomendado)
WriteLn('One line.');
WriteLn('Second line.');
end.Code language: PHP (php)


Lembre-se de adicionar a diretiva de compilação acima para funcionar corretamente