목적
  - 파일 입출력 객체를 이해한다.

문제
사용자 삽입 이미지

코드

#include <iostream>
#include <ctype.h>
#include <fstream>

using namespace std;

int main(void)
{
 char cBuf;
 ifstream fIn("file1.txt", ios::in);
 ofstream fOut("file2.txt", ios::out);
 
 if(!fIn)
 {
  cerr << "file1.txt 파일이 없습니다." << endl;
  return -1;
 }


 while(fIn.get(cBuf))
 {
  if(isalpha(cBuf) || cBuf == '\n')
  {
   fOut.put(cBuf);
  }

 }

 fOut.close();
 fIn.close();
 
 return 0;
}

해설
  - fstream 객체는 파일의 입출력을 담당하는 객체입니다. 객체 생성(인스턴스화)시 생성자에 인수로 파일과 옵션을 넣을수 있습니다.
  - fstream 객체는 iostream 객체를 상속 받았기 때문에 iostream 에서 쓰는 맴버 함수 일부를 쓸수 있습니다.

참고
  - http://www.winapi.co.kr/clec/cpp4/36-1-4.htm : fstream 객체

Posted by 카켈



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 함수
  - 네이버 지식인

Posted by 카켈
이전페이지 1 다음페이지