다양한 자료형에 맞게 입출력
fscanf, fprintf
int fscanf(FILE*, char*, ...); → 함수의 원형, 파일에서 형식에 따라 데이터 입력
int fprintf(FILE*, char*, ...); → 함수의 원형, 파일로 형식에 따라 데이터 출력
첫 번째 전달인자는 입출력 할 파일의 파일포인터, 두 번째는 scanf와 printf 함수와 동일
fscanf 함수는 입력한 변수의 개수를 리턴
fprintf 함수는 출력한 데이터의 바이트 수를 리턴
리턴값을 특별히 사용할 일은 없겠지만 fscanf 함수의 경우 데이터의 입력이 끝나면 –1을 리턴하므로 이 값을 반복문의 종료 조건으로 사용가능
예)
FILE *ifp, *ofp;
ifp=fopen("a.txt", "r"); → 개방여부는 생략
ofp=fopen("b.txt", "w"); → 개방여부는 생략
while(1){
res=fscanf(ifp, "%s%d%lf", name, &age, &height);
if(res==EOF) break;
fprintf(ofp, ".1lf%d%s", height, age, name);
}
fscanf함수가 문자열의 형태로 되어 있는 데이터를 입력될 각 자료형에 맞게 변환해주기에 한 줄을 모두 문자열로 저장한 후에 각 데이터에 따라 문자열을 나누고 나이는 정수형으로 키는 실수형으로 변환하는 작업을 직접 작성 미필요
fprintf 함수는 각 자료형의 데이터를 모두 문자열로 파일에 출력
'C' 카테고리의 다른 글
| 전처리 명령어와 define명령어, 매크로 (0) | 2024.03.30 |
|---|---|
| fflush (0) | 2024.03.30 |
| fgets, fputs (0) | 2024.03.30 |
| fgetc, fputc (0) | 2024.03.30 |
| fopen, fclose (0) | 2024.03.30 |