fseek() : 커서 옮기기, reverse나 rollback처럼 뭐 그런거..
_fcloseall() : 열린 파일 모두 닫기, fclose 여러번 할 필요가 없게 해줌. 리턴 값은 닫은 파일 갯수
참고로 %u는 부호 없는 10진수(부호 있는 10진수는 %d)

C에 올라오는 게시물들을 보면 아시겠지만 너무 찾기도 쉽고 조금만 공부해보면 대부분 아는 내용들 혹은
알 수 있는 내용들에는 전혀 언급을 안합니다. 이렇게 불친절하게 올릴거 왜 올리냐 하지 마시길~

#include <stdio.h>
#include <string.h>

#define buf 20

FILE *fp1, *fp2;

int main(void)
{
      int i=0;
      char arr[buf];
      //int numclosed;
      errno_t err;

      err = fopen_s(&fp1, "test.txt", "w");      // fopen() 대신 fopen_s()를 사용하였다.
                                                            // 첫번째 인수가 FILE 포인터인 것을 빼면 별 다를 것 없다.
                                                            // 리턴 값은 errno_t형 err에 저장되었는데, 실패하면 0
      if(!err)    // open에 실패했을 경우 0이 err에 대입되었으니 아래 문장이 실행될 것이다.
            printf_s("1test.txt file was not opened\n",stdout);
      else
      {
            fprintf_s(fp1, "Hello file I/O!?\n");
            //fseek( fp1, 0L, SEEK_SET );
      }
      fclose(fp1);

      err = fopen_s(&fp2, "test.txt", "r");
      if(err)
            printf_s("2test.txt file was not opened\n",stdout);
      else
      {
            while(1)
            {
                  fscanf_s(fp2, "%c", &arr[i], 1);      // %s로 읽으면 공백에서 끊어져버린다.
                  if( arr[i] == '\n' ) break;              // 그래서 %c로 개행문자(\n)이 나올 때까지 읽기
                  i++;
            }
            arr[i] = 0;
            printf("%s\n", arr);
      }

      fclose(fp2);
      /*
      numclosed = _fcloseall();
      printf("Number of closed file : %u\n", numclosed);
      */

      return 0;
}

'Programming Languages > C' 카테고리의 다른 글

가변 인자 함수 1  (0) 2010.08.31
포인터 다루기  (0) 2010.04.08
재귀 함수  (0) 2010.03.09
fflush.c  (0) 2010.01.12
char_IO.c  (0) 2010.01.12
Posted by 독뽀
,