본문 바로가기

C

fscanf, fprintf

다양한 자료형에 맞게 입출력

fscanf, fprintf

int fscanf(FILE*, char*, ...); 함수의 원형, 파일에서 형식에 따라 데이터 입력

int fprintf(FILE*, char*, ...); 함수의 원형, 파일로 형식에 따라 데이터 출력

첫 번째 전달인자는 입출력 할 파일의 파일포인터, 두 번째는 scanfprintf 함수와 동일

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