easy software

C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자2 본문

C언어/FILE IO

C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자2

JAVA 웹개발자 2015. 2. 12. 16:24

이번에는 C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자1 에서

 

진행했던 예제를 조금 변형해서 해보도록 하겠습니다.

 

mystroy.txt에 이름, 주소, 주민등록 번호를 저장했었는데요

 

그 뒤에 이어서 취미와 즐겨먹는 음식에 대한 정보도 저장해보도록 하는 예제입니다.

 

 

#include <stdio.h>

 

int main(void){
     int state;

 

     //데이터를 추가하기위한 스트림 생성
     FILE* fp = fopen("D:\\mystory.txt", "at");
     /* fopen함수는 오류발생시 NULL을 리턴하므로
     파일 개방 중 오류발생시 프로그램을 종료 */
     if (fp == NULL){
          printf("스트림 생성시 오류발생");
          return 1;
     }

 

     //fp를 인자로 전달하녀 데이터를 추가로 저장
     fputs("취미는 호러게임\n", fp);
     fputs("즐겨먹는 음식은 치킨\n", fp);

 

     /* fclose함수는 종료시 오류가 발생하면
     0이 아닌 다른값을 리턴하므로 비정상 종료로 판단되면
     안내후 프로그램을 종료 */
     state = fclose(fp);
     if (state != 0){
          printf("스트림 제거시 오류발생");
          return 1;
     }

     return 0;
}

 

 

C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자1 에서 했던 예제와

 

크게 다르지 않습니다. 아니 거의 똑같다고 봐도 무관합니다.

 

다른점이 있다면, 그리고 이 예제의 포인트라고 한다면,

 

데이터를 추가하기위한 스트림을 생성하는 부분에 있습니다.

 

fopen함수를 호출하면서 두번째 인자로 "at"를 전달하고 있습니다.

 

a는 w를 하되, 새로 생성해서 하는 것이 아닌,

 

기존에 있던 파일에 뒤에 이어서 쓰기를 하라는 접근 모드입니다.

 

그러므로 실행해보시면 기존의 mystroy에 저장되어있던 정보 뒤에

 

새로운 정보가 이어서 저장된 것을 볼 수 있습니다.

 

그리고 fopen함수 호출시 첫번째 인자로 파일의 이름과, 경로까지 전달했습니다.

 

주소를 전달할때에는 특수문자를 컴파일러가 알아볼 수 있도록 \를 두개 전달합니다.

Comments