출력 및 로그

콘솔 출력

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)

올바른 작성법은 두 가지입니다:

// 줄 바꿈 상수 연결
WriteLn('One line.' + LineEnding + 'Second line.');

// WriteLn을 두 번 분리해서 사용 (간결하고 권장)
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으로 직접 출력해서는 안 됩니다. 전용 로그 인터페이스를 사용하세요:

  • WriteLnLog:일반 디버그 로그
  • WriteLnWarning:경고 로그

엔진은 로그를 자동으로 해당 출력 대상에 분배합니다:

  1. Unix 시스템:표준 콘솔 출력 stdout;
  2. Windows GUI 게임 프로그램:로컬 로그 파일에 기록;
  3. Android 플랫폼:안드로이드 시스템 로그와 연동, adb logcat으로 확인 가능.

용어 대조표

영어 원문Pascal 용어 설명
Write / WriteLn줄바꿈 없음 출력 / 줄바꿈 포함 출력
LineEnding시스템 줄바꿈 상수 (크로스플랫폼 호환)
NLCastle 약식 줄바꿈 상수
padding숫자 자리 채움, 정렬 너비
precision부동소수점 소수 정밀도
{$apptype CONSOLE}콘솔 앱 컴파일 지시문
{$apptype GUI}GUI 앱 컴파일 지시문
adb logcat안드로이드 로그 조회 도구
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을 두 번 분리해서 사용 (간결하고 권장)
  WriteLn('One line.');
  WriteLn('Second line.');

end.Code language: PHP (php)

위 컴파일 지시문을 반드시 추가해야 정상 작동합니다

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다