어떻게 C의 printf의%(%)표시에서 벗어나려는
사용 시 % 부호를 어떻게 탈출합니까?printfC로요?
printf("hello\%"); /* not like this */
다음과 같이 이중 '%'를 게시하면 탈출할 수 있습니다.%%
당신의 예를 보면:
printf("hello%%");
그'%'탈출하기란 printf만을 위한 것.만약 그렇다면:
char a[5];
strcpy(a, "%%");
printf("This is a's value: %s\n", a);
다음과 같이 출력됩니다.This is a's value: %%
다른 사람들이 말했듯이,%%%배출될 것이다.
그러나 당신이 이 일을 하지 못하야 합니다:.
char c[100];
char *c2;
...
printf(c); /* OR */
printf(c2);
여러분이 문자열을 인쇄해야 하고, 항상, 언제나, 항상을 사용하여 인쇄합니다.
printf("%s", c)
(메모리 위반, 세분화 결함 등)에서 문제를 일으키는 내장형%을 막기 위해.
없다면 형식은 문자열에 있다면(또는 fputs)를 놓는다:사용할 수 있다.
puts("hello%");
만약 문자열의 형식: 있다.
printf("%.2f%%", 53.2);
댓글에 적혀있듯이puts를 추가하다\n출력 및fputs하지 않다.
잘못된 형식 지정자를 사용하고 있습니다.를 사용해 주세요.%%인쇄를 위해%코드는 다음과 같습니다.
printf("hello%%");
C에서 사용되는 모든 형식 지정자를 자세히 읽어 보십시오.
%% 를 사용할 수 있습니다.
printf("100%%");
결과는 다음과 같습니다.
100%
이중 '%'는 "에서도 작동합니다.포맷(...)예(iDrawApertureMask == 87, fCornerRadMask == 0.05)csCurrentLine.Format("\%ADD%2d%C,%6.4f*\%",iDrawApertureMask,fCornerRadMask) ;는 csCurrentLine (문자열 내용)의 바람직한 값과 예상되는 값을 나타냅니다.% ADD87C, 0.0500*%"
간단하게 사용할 수 있습니다.%두 번, 즉"%%"
예제:
printf("You gave me 12.3 %% of profit");
그 자체로...
printf("hello%%"); /* like this */
다음과 같이 합니다.
printf("hello%%");
//-----------^^ inside printf, use two percent signs together
C의 백슬래시는 문자열 내의 문자를 이스케이프하기 위해 사용됩니다.문자열이 인식되지 않음%특별한 캐릭터로, 따라서 탈출할 필요가 없습니다. printf또 다른 문제: 사용%%인쇄하다%.
네, 사용printf("hello%%");다 됐습니다.
트집잡기:
당신은 정말로 탈출하지 않습니다.%의 포맷을 지정하는 문자열에서printf()(그리고scanf())의 기능 패밀리.
그%,에서printf()(그리고scanf())의 함수 패밀리로 변환 사양을 시작합니다.변환 사양 규칙 중 하나는 다음과 같습니다.%변환 지정자(즉, 다음)로서%변환 사양이 개시된 경우)가 원인이 됩니다.'%'인수가 변환되지 않고 작성되는 문자입니다.
그 끈은 정말 두 개다.'%'내부 문자(이탈 문자와는 반대):"a\bc"는 null이 아닌3 문자의 문자열입니다."a%%b"는 null 이외의4 문자의 문자열입니다).
double을 사용합니다.
printf("hello%%");
언급URL : https://stackoverflow.com/questions/1860159/how-to-escape-the-percent-sign-in-cs-printf
'programing' 카테고리의 다른 글
| C에서 true와 false 사용 (0) | 2022.08.17 |
|---|---|
| Vuex에 디스패치된 작업 후 컴포넌트에 데이터를 전달하는 방법 (0) | 2022.08.17 |
| 포인터를 거부하는 배열 크기 매크로 (0) | 2022.08.17 |
| Ionic Vue 체크박스 (0) | 2022.08.17 |
| long 2147483647 + 1 = -2147483648은 왜 길까요? (0) | 2022.08.17 |