2016-11-12 1 views
0

cstdio 헤더를 사용하여 두 번 사용할 C++ 코드입니다.cstdio를 사용하여 C++에서 double 변수를 사용할 수 없습니다.

#include <cstdio> 
    using namespace std; 

    int main() { 

      double f; 
      scanf("%lf",&f); 
      printf("%lf",f); 

      return 0; 
    } 

이 코드는 항상 0.000000을 출력합니다. 왜? 그러나 유사한 코드는 C

#include<stdio.h> 

    int main() { 
      double f; 
      scanf("%lf",&f); 
      printf("%lf",f); 
      return 0; 
    } 

이 코드는 잘 작동에서 잘 작동합니다.

스크린 샷 1 프로그램 실행 : Valid XHTML.

screenshot 2 컴파일러 설정 : Valid XHTML.

+4

'printf ("% lf", f);'printf ("% f", f);' –

+3

재생할 수 없음 : http://ideone.com/MsqXCs - 말씀해 주시겠습니까? 어떤 컴파일러를 사용하고 있고, 어떤 입력 데이터로 테스트합니까? – Christophe

+2

ideone에서 작동하는 코드는 일반적인 경우에 아무것도 증명하지 않습니다. 'long double'과'double'은 특정 실행 환경에서 다른 표현을 가질 수도 그렇지 않을 수도 있습니다. –

답변

0

fscanffprintf (특히 변환 지정자는 다를 수 있음)의 설명서를 읽고 using namespace std을 제거하십시오.

관련 문제