반응형
형식 기반 입출력
- 형식 기반 입력 함수 : scanf(3) -> 저수준, fscanf(3) -> 고수준
- fscanf도 scanf가 사용하는 형식 지정 방법을 그대로 사용
- 성공하면 읽어온 항목의 개수 리턴
- 형식 기반 출력 함수 : printf(3) -> 저수준 , fprintf(3) -> 고수준
- fprintf는 지정한 파일로 형식 지정 방법을 사용하여 출력
형식 기반 입출력 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdlib.h> #include <stdio.h> int main(void) { FILE *rfp; int id, s1, s2, s3, s4, n; if ((rfp = fopen("unix.dat", "r")) == NULL) { perror("fopen: unix.dat"); exit(1); } printf("grade, average\n"); while ((n = fscanf(rfp, "%d %d %d %d %d", &id, &s1, &s2, &s3, &s4)) != EOF) { printf("%d : %d\n", id, (s1 + s2 + s3 + s4) / 4); } fclose(rfp); return 0; } | cs |
형식 기반 입출력 응용 - fprintf()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdlib.h> #include <stdio.h> int main(void) { FILE *rfp, *wfp; int id, s1, s2, s3, s4, n; if ((rfp = fopen("unix.dat", "r")) == NULL) { perror("fopen: unix.dat"); exit(1); } if ((wfp = fopen("unix.scr", "w")) == NULL) { perror("fopen: unix.scr"); exit(1); } fprintf(wfp, "grade, average\n"); while ((n = fscanf(rfp, "%d %d %d %d %d", &id, &s1, &s2, &s3, &s4)) != EOF) { fprintf(wfp, "%d : %d\n", id, (s1 + s2 + s3 + s4) / 4); } fclose(rfp); fclose(wfp); return 0; } | cs |
반응형
'Programming > C/C++' 카테고리의 다른 글
C/고수준 파일 입출력/파일 포인터와 파일 기술자간 변환 (0) | 2017.10.26 |
---|---|
C/고수준 파일 입출력/파일 오프셋 지정 및 이동, 저장 (0) | 2017.10.26 |
C/고수준 파일 입출력/버퍼 기반 입출력 함수 (0) | 2017.10.26 |
C/고수준 파일 입출력/문자열 기반 입출력 함수 (0) | 2017.10.26 |
C/고수준 파일 입출력/ 문자 기반 입출력 함수 (0) | 2017.10.26 |