에 대한 올바른 형식으로 printf 지정자와 연산뿐

'더블' 에 대한 올바른 형식이 지정하십시오. 지정자와 printf? 그것은 '%f' 아니면 '%lf'? 그러나 나는 ',' i believe it& # 39 의 %f 확실하지 않다.

코드 예제

#include <stdio.h>

int main()
{
   double d = 1.4;
   printf("%lf", d); // Is this wrong?
}
질문에 대한 의견 (2)
해결책

',' (또는 하나 이상의) 는 %f&quot &quot, 올바른 형식에 맞게 연산뿐. , 는 있을 수 없는 형식에 맞게 '때문에' 을 할 경우 반드시 부동 소수점 '' ll be ',', '떠다니는 printf it& # 39 번', ',' 는 sup&gt 1&lt, printf 프로모트됩니다 전에 it&lt /sup>. ',' 도 사용할 수 있는 현행 &quot %lf&quot, 이 'l' 는 표준 - 않으면 효과가 없기 때문에 'f' 로 지정된 변환 지정자와 (등이) 이 뒤를 이었다.

이것이 '에서' 형식으로 printf 문장열 한 곳에 있는 것과 크게 다르지 않다 '' ('와' 프스카노프 등) 형식으로 써줬지 스칸프 # 39 의 값을 a , , re 반군지역 출력입니다 you& 있는 '더블' 지 '를 띄울 때 "에서 승격됩니다 비호환성의 바리아디스 매개변수입니다. , # 39 는 입력을 위한 you&, re 반군지역 포인터입니다 프로모션되면 떠날려하면 '없는' 그러니 '또는' 더블 '' 부동 스칸프 복사할지 읽을 수 있으므로, '스칸프 는 부동 소수점' 와 'a' '', '%f 읽으려는 %lf 고말은 운영까지도 읽기 위해' '더블' (and, 뭐하러요 it& # 39, s worth kingdome. seattle. '긴 연산뿐', '각' '%Lf 사용하는 printf' 또는 '스칸프').

  • &lt sub>;
  1. C99, & # 167, 6.5.2.2/6: &quot, 만약 표현식에서는 불렀으매 문자 기능이 있는 는 포함되지 않은 원형 (prototype), 정수, 부동 소수점 유형을 가진 각 인수 및 프로모션 수행합니까 인수만 연산뿐 프로모트됩니다 있다. 이러한 환경은 기본값입니다 인수 promotions.&quot. C++에서 이 다소 다른 언어 (예를 들면, 정보기술 (it), t # 39 라는 단어를 사용할 prototype&quot doesn& ";) 그러나 그 효과는 동일하다. # 39, 사실상 모든 바리아디스 매개변수입니다 they& 전에 받은 기본 프로모션 하고 있다. &lt /sub>;
해설 (6)

C99 때 규칙에 따라, 표준 ( N1256 구배면에 등) 함수은 친절하구만: 펠릭스 프린스프 (printf, 스프링스프.) 또는 스칸프.

다음은 관련 부품을 추출했습니다:

&gt. 추천서문 &gt. &gt. 이 두 번째 싱글으로, 1990년 첫 번째 판은 취소창을 에디션입니다 대체하고, iso / iec 9899 의해 개정된 1994년, iso / iec 9899/ 9899/cor1: 교정됨 및 iso / iec 1995년: 1996년, amd 1 iso/iec 9899/cor2:. &gt. 비해 큰 변화가 에디션입니다 다음과 같습니다. &gt. &gt. printf '' - '%lf 지정자와 수 있는' 변환 &gt. &gt. 7.19.6.1 펠릭스 프린스프 '기능이 있는' &gt. &gt. 7 디스테이징하는 수정자는 및 그 의미는 다음과 같습니다. &gt. &gt. l (엘) 는 etlat (.) a, e, E, f 는 다음과 같은 영향을 주지 않고, G, F, g, 또는 변환 지정자와. &gt. &gt. 다음 a, A, e, L 지정하는 F, g, E, f, G 변환 또는 긴 패스를 지정자와 qic 연산뿐 인수.

'신청' 에 지정된 '같은 규칙을 펠릭스 프린스프 printf', '' 와 비슷한 스프링스프 총괄하였습니다.

&gt. 7.19.6.2 프스카노프 '기능이 있는' &gt. &gt. 11 디스테이징하는 수정자는 및 그 의미는 다음과 같습니다. &gt. &gt. l (엘) 는 etlat (.) 그 후, A, e, E, f 또는 G, F, g, 두 유형 변환 지정자와 qic 포인터입니다 충족되었으며 인수를. &gt. &gt. 다음 a, A, e, L 지정하는 E, f, F, g, 또는 G 변환 &gt. 지정자와 qic 충족되었으며 인수를 유형: 포인터입니다 연산뿐 싶다. &gt. &gt. &gt. 12 변환 지정자와 그 의미는 다음과 같습니다. &gt. a, e,f ᄀ씨는 충족되었으며 일치시킵니다 선택적으로 서명됨 부동 소수점 숫자 (.) &gt. &gt. 변환 지정자를 14 A, E, F, G, 그리고 X 도 각각 동일하게 동작할 유효하며, e, f, g, 그리고 x.

'다음' 이 긴 얘기를 파선-짧은 os*용 펠릭스 프린스프 지정자와 .해당 유형은 지정했습니다.

  • &gt %f '-'; 연산뿐
  • &gt %Lf '-'; 긴 연산뿐.

및 "에 대한 프스카노프 때문이다.

  • &gt %f '-'; 부동 소수점
  • &gt %lf '-'; 연산뿐
  • &gt %Lf '-'; 긴 연산뿐.
해설 (0)

It ',' 수 '%f %g %e 방법에 따라' 또는 '' 운영까지도 포맷할 수. Here 에서 자세한 내용을 참조. 'L' 이 아니라 '에서' 더블 '을 (를)' '스칸프 수정자의 필요합니다 printf'.

해설 (2)

'형식', '더블' 는 '%lf printf 올바른' 이 그대로 사용할 수 있습니다. # 39, 코드에서 there& 아무런 문제가 없다.

'형식' 에서 지원되지 %lf '의 printf' 는 이전 (사전 c99) 버전을 만들 수 있는 c 언어, 피상적이에요 &quot inconsistency"; 형식 지정자를 '더블' 에서 '와' 간 '의 printf 스칸프'. 피상적이에요 일관성이 있는 C99 에서 수정되었습니다.

따라서 현대 C 를 사용할 수 있어 '퍼펙트 센스 포지셔닝하십시오 %f' 을 (를) '', '더블' 와 '%Lf 부동 소수점 %lf' 을 (를) '' 을 (를) '에서' 더블 '긴' 와 '스칸프 printf 모두 일관되게'.

해설 (0)

'%Lf' (참고합니다 케이털 'L') 은 형식 지정자와기절해있는 복식.

복식 ',' 일반 '대한', '', '', '%g 인컨텍스트 %e %E %f' 또는 '%G' 그럼세

해설 (3)