programing

어떻게 C의 printf의%(%)표시에서 벗어나려는

procenter 2022. 8. 17. 23:21
반응형

어떻게 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

반응형