programing

C에서 printf() 함수의 반환 값

lovejava 2023. 10. 31. 20:14

C에서 printf() 함수의 반환 값

printf()함수는 인쇄된 문자 수를 반환합니다.그런데 아래 코드에는 왜 5를 인쇄하고 있는 것입니까?

int a=1000;
printf("%d",printf("\n%d",a));

1000자는 한 번에 한 칸씩 인쇄하기 때문에 모두 5자입니다.

"1000 2"를 출력해야 합니다.하지만 "1000 5"를 출력하고 있습니다.

출력되는 문자 수는 5자입니다.10004자 입니다.\n한 캐릭터 입니다.

printf"items" 출력의 수를 반환하지 않습니다.scanf함수 패밀리는 입력에 대해 수행합니다.실제 문자 수를 반환합니다.

내부 호출이 먼저 발생하여 5자를 인쇄합니다(\n,1,0,0,0) 및 반품5.

그러면 외부 호출이 발생하고, 출력합니다.5내부 호출로 돌아온 겁니다

식을 가정합니다.

int a=10;
printf("a=%d",printf("b=%d",a));

산출량

b=10 a=4;

bbi.e에 할당된 가치 때문에

b=10;

그리고.

b,=,1,0   

4로 계산하고 ai에 할당합니다.

a=4;

당신은 분명히 알아채야 합니다.1000네 글자인데, 당신은 가지고 있습니다.\n그것 자체가 성격인 것입니다.

먼저 내부 printf의 출력을 확인합니다.

/n, 1, 0, 0, 0

이제 두 가지를 고려해야 합니다.

1) You have to take escape sequences like '\n','\t' etc into account.
2) You have to take 1 escape sequence as 1 character (not 2)

외부 인쇄물은 내부 인쇄물의 실제 문자 수를 5로 반환합니다.그래서 외부 인쇄물은 5를 반환합니다.

printf ()는 실제 문자 수를 반환합니다. 여기와 같이 4개("1000") + 1개("\n") 문자가 있으므로 출력 1000을 제공하고 내부 printf 함수의 문자 수인 5를 제공하며 10005처럼 보입니다.

숫자 1000은 4자리로 구성되어 있어서 인쇄하는데 4자가 필요합니다.4자에 대사 피드를 더하면 5자입니다.

인에printf("%d",printf("\n%d",a));printf("\n%d",a)새 라인 차를 인쇄할 것입니다.'\n'그리고 정수 값.1000총 2개의5성격.첫번째 이너printf처음에 새 줄과 1000을 인쇄하고 반환되는 값을 호출합니다.5외부에 의해 인쇄됩니다.printf.

함수에서 성공적으로 인쇄한 문자 수를 인쇄합니다.

enter image description here

이미지에서 볼 수 있는 것처럼, 먼저 마지막 인쇄 f는 3223433 1233을 보여줍니다. 이제 마지막 인쇄 f는 표시된 문자열/int의 문자 수를 반환합니다.그런 다음, 두 번째 마지막 인쇄 f는 마지막 인쇄 fi에 의해 표시된 것의 길이인 12를 표시합니다(즉, 3223433 1233).세 번째 마지막 인쇄물에는 길이가 12인 2가 표시됩니다.12의 길이가 2이기 때문에 다음에 표시되고 2의 길이가 1이기 때문에 1이 표시되고 마지막에 1이 표시됩니다.

좀 더 덧붙이자면, 반환되는 문자의 수는printf()매개 변수의 지정자에 따라 달라질 수 있습니다.

ex:

int a= 0xff;
printf(" : %i characters\n" ,printf("%x",a)); //prints ff : 2 characters
printf(" : %i characters\n" ,printf("%d",a)); //prints 255 : 3 characters
int a=1000;
printf("%d",printf("\n%d",a));

이 코드 조각에는 2개의 printf() 함수가 있습니다.

  1. 안쪽 프린트 f
  2. 바깥쪽 프린트 f

먼저 내부 printf()가 실행되고 인쇄됩니다.1000그러면 외부 인쇄물 ()가 실행됩니다.

주목할 점은 다음과 같습니다.printf()인쇄할 문자 수를 반환하고 탈출 시퀀스가 printf의 문자로 계산됩니다.

따라서, 내부 인쇄 f()를 실행함으로써, 우리는 5('\n', 1, 0, 0, 0이 5자이기 때문에), 이제, 외부 인쇄 f()가 실행되면, 5가 인쇄됩니다.

printf ()은 콘솔에 인쇄된 문자의 총 숫자를 반환합니다. 당신은 1000을 통과합니다. 따라서 첫번째 내부 printf () 기능은 작동하고 1000을 인쇄할 것이고, 여기서 문자의 숫자는 4입니다.하나는 \n입니다.

그래서 글자의 합계가 5가 되고, 그래서 10005를 인쇄합니다.

언급URL : https://stackoverflow.com/questions/7055882/return-value-of-printf-function-in-c