1. fprintf를 이용한 메모장 입력

#include <stdio.h>
int main(){
int age;
char name[20];
int i;
FILE *pt = fopen("abc.txt", "wt");

for(i=0; i<3; i++){
scanf("%d %s", &age, name); // age와 name 변수의 값을 입력받고
fprintf(pt, "%d %s\n", age, name); // 변수값을 메모장에 넣는다.
}
fclose(pt);
return 0;
}

// 답 20 kim -> 메모장 확인 20 kim

2. fscanf를 이용하여 읽어오기
#include <stdio.h>
int main(){
int age;
char name[20];
int ch;
FILE *pt = fopen("abc.txt", "rt");

while(1){
ch = fscanf(pt, "%d %s", &age, name);
if(ch == EOF){ // fscanf는 끝에 도달하면 EOF를 반환한다.
break;
}
printf("%d %s \n", age, name);
}
fclose(pt);
return 0;
}

// 답 20 kim
// fscanf는 띄어쓰기 또는 엔터가 나오기 전까지 읽는다.
// fscanf는 파일 끝에 EOF를 반환한다.

while(fscanf(pt, "%d %s", &age, name) != EOF){
printf("%d %s \n", age, name);
}

이게 더 간단해보인다.

3. 파일 끝을 확인하고 싶다면?

feof라는 함수가 있다.
feof(pt) 를 입력하자. 지금 pt 위치에는 스트림이 들어간다.
pt가 EOF라면 0이 아닌 값을 반환하고 끝이 아니라면 0을 반환한다. (예를 들면 000000...끝에서 1됨)
그러면 끝을 확인하려면?

if(feof(pt) != 0){
puts("파일의 끝입니다.");
else{
puts("파일의 끝이 아닙니다.");
}

// 이런 식으로 작성할 수 있다.

블로그 이미지

ryancha9

https://blog.naver.com/7246lsy

,