printf할 때 "\"를 안 쓰고 특수문자 %를 출력하려면 어떻게 해야 되죠?


발생하는 문제 및 실행환경

printf("hello\%"); //이렇게 말고

백슬래시를 쓰면 특수문자가 너무 많아질 때 보기가 너무 어려워서 다른 방법을 알고 싶습니다. 저 코드랑 똑같은 결과가 나오는데 \%같이 안 쓰고 %를 출력하는 방법 없을까요?

  • 2016년 02월 01일에 작성됨

조회수 211


1 답변


좋아요
0
싫어요
채택취소하기

형식 지정자를 쓰는 게 싫다면 %%같이 특수문자를 2번 쓰는 걸로 해결할 수 있습니다

printf("printf(\"hello%%%%\"): hello%%\n");
//또는
printf("printf(\"hello%%c\"): hello%c\n", '%');

출력 :

printf("hello%%"): hello%
printf("hello%c"): hello%

다만 쓸 때 주의하셔야 하는데 printf에서 바로 쓰는 게 아니라 어떻게 출력하느냐에 따라서 다른 결과가 나올 수도 있습니다.

int main(int argc, const char * argv[]) {
    char a[5];
    strcpy(a, "%%");

    printf("printf(a): ");
    printf(a);

    printf("\nprintf(\"%%s\", a): %s\n", a);
}

출력 :

printf(a): %
printf("%s", a): %%

int main(int argc, const char * argv[]) {
    char a[5];
    strcpy(a, "%");

    printf("printf(a): ");
    printf(a);

    printf("\nprintf(\"%%s\", a): %s\n", a);
}

출력 :

printf(a): 
printf("%s", a): %

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close