반원 블로그

[C 프로그래밍] 파일 출력 함수_1.기본 본문

2017/C 프로그래밍

[C 프로그래밍] 파일 출력 함수_1.기본

반원_SemiCircle 2017. 2. 17. 20:18

#1

■fopen을 이용해 파일을 생성 할 수 있다.

FILE* fopen(char *filename, char *mode);

모드는 다음과 같이 구분된다.

r : 파일을 읽을 때 사용

w : 파일을 쓸 때 사용. 파일이 없으면, 파일을 생성함. 파일이 있으면 파일의 내용이 없어짐

a : 파일에 첨부하기 위해 사용, 파일이 없으면, 파일을 생성함, 파일이 있으면, 파일의 끝 부터 내용을 추가



#2

■Write 모드

fopen("data.txt", "w");


- 파일에 값을 기록할 수 있는 파일포인터 FILE* 를 얻을 수 있다 

(보통 fp로 쓴다. 이전 포스팅 참고 : http://gosmcom.tistory.com/5)

- 파일을 열 때, 파일이 없으면 파일을 생성하고, 파일이 있으면, 파일의 내용을 모두 지우고 기록 시작한다.


연습 2-1

#include <stdio.h>

void main(){
  FILE* fp; //파일 접근을 위해 파일 포인터 생성
  fp =  fopen("data.txt","w"); // data.txt라는 파일의 포인터를 반환 받고, 모드가 w 이므로 파일이 없으면 생성한다.
  fclose(fp); //파일 포인터 해제

  //결과적으로 data.txt파일이 프로젝트 루트폴더에 생성된다.
}

#3

■파일에 문자열을 출력하기

실행 화면에 문자열을 쓸 때 printf를 썼었다. 파일에 문자열을 쓸 때는 fprintf를 쓴다.

동시에 여러 개의 파일을 열 수 도 있기 때문에 파일 포인터를 제대로 구분하여 인자로 넘겨줘야 한다.

int fprintf(파일포인터, 출력 포멧, 인자들);

연습 3-1

#include <stdio.h>

void main(){
  FILE* fp; //파일 접근을 위해 파일 포인터 생성
  char *text = "안녕하세요!!"; //파일에 저장할 문자열 생성

  fp =  fopen("data.txt","w"); // data.txt라는 파일의 포인터를 반환 받고, 모드가 w 이므로 파일이 없으면 생성한다.
  fprintf(fp," 내용 : %s" , text); //파일에 문자열을 출력
  fclose(fp); //파일 포인터 해제

  //결과적으로 " 내용: 안녕하세요!!"가 저장된 data.txt파일이 프로젝트 루트폴더에 생성된다.
}

#4

■APPEND 모드

WRITE모드와 다르게 파일의 처음부터 갱신하지 않고, 파일의 맨 뒤부터 내용이 추가된다. 덧붙여진다라고 생각하면 될 것 같다.

그 이외의 기능( 파일이 없으면 생성) 등은 같다.

fopen("data.txt", "a");


연습 4-1

#include <stdio.h>

void main(){
  FILE* fp; //파일 접근을 위해 파일 포인터 생성
  char *text = "안녕하세요!!"; //파일에 저장할 문자열 생성

  fp =  fopen("data.txt","a"); // data.txt라는 파일의 포인터를 반환 받고, 모드가 a 이므로 파일이 없으면 생성한다.
  fprintf(fp," 내용 : %s\n" , text); //파일에 문자열을 출력
  fclose(fp); //파일 포인터 해제

  //결과적으로 " 내용: 안녕하세요!!"가 저장된 data.txt파일이 프로젝트 루트폴더에 생성되며
  //실행할 때마다 " 내용: 안녕하세요!!" 가 추가된다.
}


#5

다음 포스팅에서는 바이너리 읽기, 쓰기 모드를 다룬다.

Comments