fscanf 사용 시, 소수 읽어오는 법

질문 제목 :
fscanf 사용시 오류

질문 요약 :
fscanf로 파일에 쓴 txt읽어올 때, data 형 선언에 따라 결과가 달라지는 이유를 모르겠네요.

질문 내용 :

0629test.txt 는 아래와 같이 작성한 후 fscanf를 테스트 했습니다.
0
47
1
2

---------------------------------------------------------------

#include stdio.h
#include stdlib.h

void main()
{
int a, c;
int b; //double b; =double b;로 선언하면 결과이상;;ㅠㅠ
FILE* fpOut;
fpOut = fopen(0629test.txt., r);

fscanf(fpOut, %d %d %d, &a, &b, &c);
printf(a=%d, b=%d, c=%d, a, b, c );
}

main함수 두번째 줄에서처럼,
b를 이렇게 double로 하면 c를 출력한 결과가 이상해요.
쓰레기값이 출력되는 듯 합니다.ㅠㅠ
(출력: a= 0, b= 47, c=-858993460)여기서,

double b;= int b; 로 고치면
결과 정상적으로 나옵니다!! 왜 그런 걸까요?;;
(출력: a= 0, b= 47, c=1)

왜 그런건지 아시는 분 조언 부탁드려요~~

댓글 3

  • 커피우유 2026.07.05

    float형에 입력받을 때는 \%f\
    double형에 입력받으려면 \%lf\
    int 형에는 \%d\입니다.

    float나 double형을 출력할 떄는 \%f\
    int형을 십진수로 출력할 때는 \%d\입니다.

  • 매1혻적 2026.07.05

    %f로 고치면 소수가 출력되는건 확인했는데요, 위와 같은 문제는 여전히 발생한답니다.ㅠㅠ

  • 소윤 2026.07.05

    %d - %f로 하시면 되지 않나요?

C언어 다른 글

목록