소프트웨어/C

[2003년 기말 6번] 파일 입출력 - 1

카켈 2007. 2. 5. 03:40



1. 목적

  - 파일 입출력을 이해한다.

2. 문제
  - no_06.txt 파일을 읽어서 copy_no_06.txt 파일을 출력하라.
  - copy_no_06.txt 에 외부에 다른 값을 넣어서 만들지 않는다.
  - 출력 화면을 요구하지 않는다.

3. 이해
  - 파일구조체와 파일 관리 함수인 fgets 과 fputs 함수를 이해하는가?

4. 코드

#include <stdio.h>

int main()
{
 FILE *infp, *outfp;
 char instr[255];
 
 infp = fopen("no_06.txt","r");
 outfp = fopen("copy_no_06.txt","w");

 while(fgets(instr,255,infp))
 {
  fputs(instr,outfp);

 }

 fclose(infp);
 fclose(outfp);

 return 0;
}


5. 해설
  - 받는 파일과 보내는 파일을 지정하는 구조체 포인터를 선언합니다.
  - fopen 함수는 파일을 열며, fclose 로 닫습니다. "r", "w" 속성값은 "읽기", "쓰기" 를 뜻합니다.
  - fgets 함수는 지정된 버퍼크기 만큼 파일을 읽어서 문자열로 저장합니다.
  - fputs 함수는 파일 구조체에 해당 변수의 내용을 넣습니다.
  - fgets 로 파일 끝(EOF - End Of File) 까지 읽으면 NULL 값을 호출하므로 while 구문으로 간단 구현이 가능합니다.
  - 원래 문제에 주어지는 double_space() 함수는 제공되지 않아서 임의로 처리했습니다.
  - FILE 구조체는 stdio 에서 정의 되어 있으며 대문자로 해야합니다.

6. 참고
  - http://www.winapi.co.kr/clec/cpp2/17-2-3.htm : fget, fputs 함수
  - 네이버 지식인