[2003년 기말 6번] 파일 입출력 - 1
1. 목적
- 파일 입출력을 이해한다.
2. 문제
- no_06.txt 파일을 읽어서 copy_no_06.txt 파일을 출력하라.
- copy_no_06.txt 에 외부에 다른 값을 넣어서 만들지 않는다.
- 출력 화면을 요구하지 않는다.
3. 이해
- 파일구조체와 파일 관리 함수인 fgets 과 fputs 함수를 이해하는가?
4. 코드
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 함수
- 네이버 지식인