더북(TheBook)

추첨번호 다음 줄에 있는 보너스번호를 읽어 오기 위해 fscanf()함수를 한 번 더 사용합니다. 이때 읽어 온 ‘보너스번호’ 문자열은 str2 배열에 저장하고, 보너스번호인 7은 bonus 변수에 저장합니다.

printf()함수로 str2 배열과 bonus 변수에 저장된 값을 출력합니다.

파일 읽기가 끝나면 파일을 닫습니다.

10.3.2 fscanf.c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define MAX 10000 ------------------------ ➊ 매크로 정의

int main(void) {
    char str1[MAX]; ---------------------- ➋ ‘추첨번호' 문자열 저장 배열 선언
    char str2[MAX]; ---------------------- ➋ ‘보너스번호' 문자열 저장 배열 선언 
    int num[6] = { 0, 0, 0, 0, 0, 0 }; --- ➌ 추첨번호 저장 배열 초기화
    int bonus = 0; ----------------------- ➌ 보너스번호 저장 변수 초기화
    FILE * file = fopen("c:\\Users\\사용자계정\\test2.txt", "rb"); - ➍ 파일 포인터 얻기
    if (file == NULL) {
        printf("파일 열기 실패\n");
        return 1;
    }
    fscanf(file, "%s %d %d %d %d %d %d", str1, &num[0], &num[1], &num[2], &num[3], &num[4], &num[5]); ------------------------------------ ➎ fscanf() 함수로 파일 읽기
    printf("%s %d %d %d %d %d %d\n", str1, num[0], num[1], num[2], num[3], num[4], num[5]);
    ----------------------------------------- ➏ 추첨번호 출력
    fscanf(file, "%s %d", str2, &bonus); ---- ➐ fscanf() 함수로 파일 읽기
    printf("%s %d\n", str2, bonus); --------- ➑ 보너스번호 출력
    fclose(file); --------------------------- ➒ 파일 닫기
    return 0;
}

실행결과 icon_con

추첨번호 1 2 3 4 5 6
보너스번호 7

실행해 보면 test2.txt 파일에 작성한 추첨번호 1, 2, 3, 4, 5, 6과 보너스번호 7이 잘 출력되는 것을 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.