[C언어 소스] fscanf 함수 사용 예제
//C언어 표준 라이브러리 함수 사용법 가이드
//int fscanf (FILE * fp ,const char *format,...); 파일 스트림에 포멧을 지정하여 읽는 함수
//회원 정보를 파일에 쓴 후에 다시 읽어와서 출력
#pragma warning(disable:4996)
#include <stdio.h>
#define MAX_MEMBERS 10
#define MAX_NAME_LEN 20
//회원 구조체 정의
typedef struct {
char name[MAX_NAME_LEN + 1];
int age;
}Member;
int main(void)
{
FILE * fp;
int i;
//원본 회원 배열
Member members[MAX_MEMBERS] =
{
{ "홍길동",20 },{ "강감찬",15 },{ "을지문덕",22 },{ "이순신",19 },{ "김구",30 },
{ "안중근",30 },{ "박찬호",35 },{ "김연아",17 },{ "아이유",20 },{ "주니엘",20 }
};
//읽어올 회원 배열
Member members2[MAX_MEMBERS];
//쓰기 모드로 파일 열기
fopen_s(&fp, "data.txt", "w");
if (fp == NULL)
{
perror("error fopen");
return;
}
//전체 회원 정보를 파일에 쓰기
for (i = 0; i<MAX_MEMBERS; i++)
{
fprintf(fp, "%-10s %-10d\n", members[i].name, members[i].age);
}
fclose(fp);//파일 스트림닫기
//읽기 모드로 파일 열기
fopen_s(&fp, "data.txt", "r");
if (fp == NULL)
{
perror("error fopen");
return;
}
//장식을 위한 출력
printf("%-10s %-10s\n", "이름", "나이");
//입력 파일 스트림에서 포멧에 맞게 회원 정보 읽어온 후에 출력 반복
for (i = 0; i<MAX_MEMBERS; i++)
{
fscanf(fp, "%s %d\n", members2[i].name, &members2[i].age);
printf("%-10s %-10d\n", members2[i].name, members2[i].age);
}
fclose(fp);//파일 스트림 닫기
return 0;
}
출력
이름 나이
홍길동 20
강감찬 15
을지문덕 22
이순신 19
김구 30
안중근 30
박찬호 35
김연아 17
아이유 20
주니엘 20
새로 만들어진 data.txt 내용
홍길동 20
강감찬 15
을지문덕 22
이순신 19
김구 30
안중근 30
박찬호 35
김연아 17
아이유 20
주니엘 20
'C언어 > C언어 예제' 카테고리의 다른 글
[C언어 소스] fopen_s 함수 사용 예제 (0) | 2016.05.03 |
---|---|
[C언어 소스] fsacnf_s 함수 사용 예제 (0) | 2016.05.03 |
[C언어 소스] fgets 함수 사용 예제 (0) | 2016.05.03 |
[C언어 소스] getc 함수 사용 예제 (0) | 2016.05.03 |
[C언어 소스] fgetc 함수 사용 예제 (0) | 2016.04.30 |