8.3.1 순차 파일 만들기
순차파일는 만들어진 파일에 자료를 기록하는 함수
(1) putc() 함수
- 형식 : putc(문자변수, 파일 포인터 변수);
- 사용 예 : putc(c, fp);
- 기능 : fp가 가리키는 파일에 c에 있는 문자를 출력한다.
// putc() 함수의 사용 예
#include <stdio.h>
#include <stdlib.h>
void main(){
FILE *fp; // 파일 포인터 선언
char c;
fp = fopen("sample.txt", "w"); //sample.txt" 파일을 텍스트파일, 쓰기 모드로 개방
if(fp==NULL){
printf("파일을 개방할 수 없습니다."); // 에러 메시지 출력
exit(1); }
printf("문자열을 입력 하시오. 입력을 끝내려면 ctrl +z 를 누르시오.");
while(c=getchar()!=EOF) // 문자 출력의 끝을 판별
putc(c, fp); // 문자를 파일로 출력
fclose(fp); } // 파일 닫기
(2) fputs()함수
- 형식 : fputs(문자열 변수, 파일 포인터 변수):
- 사용 예 : fputs(s, fp);
- 기능 : 지정된 파일에 문자열(하나의 레코드)을 출력한다.
//fputs() 함수의 사용 예
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(){
char name[64];
FILE *fp;
if((fp=fopen("sample2.txt", "w"))== NULL){
sample2.txt 파일을 쓰기 모드로 개방하고, 에러 발생 시 메시지 출력 //puts("파일을 개방할 수 없습니다!");
exit(1); }
printf("이름을 입력하시오. 입력을 끝내려면 'end'를 입력하시오. \n");
gets(name);
while(strcmp(name, "end")){
/*입력된 문자열이 end가 아닐 동안 loop 계속
(strcmp() : 2개의 문자열을 비교 하는 문자열 조작 함수)*/
strcat(name,"\n") ;
// 하나의 문자열에 다른 것("\n")을 추가하는 문자열 조각 함수
fputs(name, fp) ; // 문자열을 fp가 가리키는 파일에 출력
gets(name); }
fclose(fp); } // 파일 닫기
(3) fprintf() 함수
- 형식 : fprintf(파일 포인터 변수, "출력 형식", 변수들);
- 사용 예 : fprintf(fp, "%s %d \n", a, b);;
- 기능 : 지정된 형식대로 자료를 파일 포인터 변수가 가리키는 곳에 출력한다.
// fprintf() 함수의 사용 예
#include <stdio.h>
#include <stdlib.h>
void main(){
FILE *fp;
char no[10], name[10];
int mid, term, rep, att, i;
fp = fopen("simlpe3.txt", "w");
if(fp == NULL){
printf("파일을 개방할 수 없습니다.");
exit(1); }
fprintf(stdout, "학번 이름 중간 기말 리포트 출석 점수를 입력 \n");
//화면으로 문자열 출력, stdout-모니터를 가리키는 특수한 파일 포인터
for(i=0; i<5; ++i) {
scanf("%s %s %d %d %d %d",no, name, &mid, &term, &rep, &att);
fprintf(fp, "%-10s %-8s %3d %3d %3d %3d \n", no, name, mid, term, rep, att); } }
//지정된 출력 형식으로 자료를 파일에 출력
> C 언어에서는 입,출력 장치를 파일 개념으로 처리
- C 프로그램에서는 자동적으로 3개의
표준파일에 대한 포인터를 생성
- 이러한 표준파일에 대해서는
따로 파일 포인터를 선언할 필요가 없다.
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
순차 파일의 레코드 추가 (0) | 2020.06.21 |
---|---|
순차 파일 읽기 getc() , fgetc(), fgets(), fscanf() (0) | 2020.06.20 |
파일처리함수 (fclose, 파일 닫기) (0) | 2020.06.18 |
파일처리함수 (1) | 2020.06.17 |
13강 파일처리 함수 (0) | 2020.06.16 |