반응형
SMALL

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개의

   표준파일에 대한 포인터를 생성

 - 이러한 표준파일에 대해서는

   따로 파일 포인터를 선언할 필요가 없다.

 

 

 

반응형
LIST

+ Recent posts