2013-11-25 5 views
-1

나는 다음과 같은 코드를 가지고 :scanf와 모든 더블 잘못을 읽고

int main(void) 
{ 
    double r; 
    scanf("lf",&r); 
    printf("%lf\n",r); 
} 

내가 반환에 대한 40 ~ 50 자리 말도 안되는 번호를 입력하는 값. scanf는 chars, integer, strings 등에서 잘 작동하지만 double 형으로이 문제가 발생합니다. 아무도 도와 줄 수 있습니까? 당신이 그것을 읽을 때

+1

없음 "%의 LF를"당신은 스캔이 일 것을 확인하지 않는 한 따라서, 유효한 값을 포함 r에 의존 잘못? 그건 당신의 오타입니까? –

+0

아니, 사실은 내가 잘못 했어. 내 전체 프로그램의 printf가 올바르다. >> – user2958235

+0

'double'을'printf' 할 때,'% lf'이 아니라'% f'을 사용해야합니다. – user694733

답변

4
scanf("lf",&r); 

scanf("%lf",&r); 
+0

감사의 말에 지체>< – user2958235

3

당신은 %lf해야합니다.

3

당신은 %에 넣어 깜빡

scanf("%lf",&r); 

시도이어야한다.

0

당신은

scanf("%lf", &r); 

가 언제 당신은 당신이 사용하는 변수의 유형 앞에 퍼센트 기호를 넣어야()는 scanf를 사용합니다.

4

당신은 형식 문자열 (%) 기호 비율을 놓치고, 그것은해야한다 :

scanf("%lf", &r); 

을 그리고 당신은, 이후 반환 값을 확인 을 추가해야합니다 당신은 배운대로, I/O는 부서지기 쉽고 실패 할 수 있습니다.

당신은 lf 전에 % 잊어
if(scanf("%lf", &r) == 1) 
{ 
    print("got the double %g\n", r); 
} 
else 
{ 
    printf("**Failed to read a double value!\n"); 
} 
+1

+1 가장 교육적인 답변과 주어진 담당자 없음. 사람들에게 무슨 문제가 있습니까? – user694733