• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

printf로 %를 출력하는방법

21.04.05 09:39 작성 조회수 814

0

안녕하세요. 제가 어떤분의 질문을 답변하다 궁금한점이 생겼습니다.

c언어에서는 출력할때 항상printf를 사용하잖아요?(자바강좌에서 질문하여 죄송합니다.)

구구단같은 연산코드에서는 대부분이 이런코드를 사용할거라고생각합니다.

printf("%d * %d = %d", n, i, n * i); //구구단
printf("%d + %d = %d", a, b, a + b) //"기본"

그래서 나머지연산자에서도 똑같을거라고 생각했는데 

printf("%d", a % b);

와같이 설명(?)이 생략됐거나 "나머지"같은 문구로 바꿔져있었습니다.

https://dojang.io/mod/page/view.php?id=106

http://mwultong.blogspot.com/2007/01/c-modulus-operator-get-remainder.html

제 질문이 뭐냐면 

System.out.printf("%d % %d = %d", 20, 3, 20 % 3); //예상출력: 20 % 3 = 2

같은 서식출력코드에서 %는 출력가능하냐?입니다.

답변해주면감사합니다.

답변 1

답변을 작성해보세요.

1

김현지님의 프로필

김현지

2021.04.05

안녕하세요, haon님!

C언어에서 printf() 함수에는 "퍼센트 기호(%)"가 포맷 출력을 위해 특수한 의미로 사요됩니다.

따라서 printf()문 안에 퍼센트 기호 한 번만 작성하면 %가 출력되지 않습니다.

퍼센트 기호 자체를 출력하기 위해서는 %를 두 번 중복해서 사용해주어야 출력됩니다.

따라서, %% 처럼 기호 두 번에 퍼센트 기호가 하나 출력됩니다.

printf("%\n");    // 출력 안됨

printf("%%\n");    // % 하나 출력 (%)

printf("%%%%\n");    // % 두개 출력 (%%)

printf("%%%%%%\n");    // % 세개 출력 (%%%)

위와 같이 사용됩니다.

즉, % 출력을 위해서는 두 개씩 사용해주면 됩니다.

혹시 궁금하신 점이 있다면 댓글 남겨주세요.

도움이 되었으면 좋겠습니다. :)

haon님의 프로필

haon

질문자

2021.04.06

감사합니다.

다른기호는앞에 \백슬래시를 붙이면돼는데 %는 두개사용해야 출력이 되내요