Soft Ware/C 언어!!

fread 와 fwrite 이용 하기 및 fgets 와 fputs 와의 차이점

달려가보자 2012. 1. 30. 21:50


fread 함수는 매개변수로 버퍼,몇 바이트씩 읽을것인지,몇개 읽을 것인지, 파일 포인터  이다.

ex)
     #include <stdio.h>

#include <string.h>

int main()
{
 FILE *Test=0,*Test2 = 0;
 char buffer[1000] = {0,};
 char * freadData = 0;
 int i = 0;
 int count = 0;
 Test = fopen("book.txt","r+t");
 Test2 = fopen("book2.txt","w+t");
 
 for(;!feof(Test);)
 {
  count++;
  i = fread(buffer,1,1000,Test);
  //fgets(buffer,1000,Test);
  printf("실제 내용 : %d \n",i);
 // if(freadData == NULL) break;
  i = fwrite(buffer,1,i,Test2);
  printf("기록된  내용 : %d \n",i);
  //fputs(buffer,Test2);
 }
 printf("count:%d\n",count);
 return 0;
}

인 소스가 있을때 fread 함수는 파일을 1000 바이트 까지 한번에 버퍼에 다 읽는다 .
그리고 리턴 값으로 NULL을 제외한 읽은 데이터 값의 횟수를 리턴 한다.

이 리턴값을 이용하여 fwrite 값의 몇개까지 쓸것인지 부분에 넣어 주면 된다 .

그리고 feof() 함수는 파일의 마지막을 가르킬때 TRUE를 가르킨다.

fread 함수가 몇번 돌았는지를 확인하는 부분이 마지막 printf("count:%d\n",count) 이다 .

자 그럼 fgets 과 fputs는 어떡한가 ? 

한줄씩 읽어 오고 출력함으로 파일이 몇줄인가에 따라 그 획수 만큼 돈다는것이다 ^^