printf할 때 "\"를 안 쓰고 특수문자 %를 출력하려면 어떻게 해야 되죠?
조회수 11301회
발생하는 문제 및 실행환경
printf("hello\%"); //이렇게 말고
백슬래시를 쓰면 특수문자가 너무 많아질 때 보기가 너무 어려워서 다른 방법을 알고 싶습니다.
저 코드랑 똑같은 결과가 나오는데 \%
같이 안 쓰고 %
를 출력하는 방법 없을까요?
1 답변
-
형식 지정자를 쓰는 게 싫다면
%%
같이 특수문자를 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): %
댓글 입력