Soft Ware/C 언어!!

파일 입.출력 !!

달려가보자 2011. 8. 7. 10:11

파일을 출력 할때

FILE * fp = fopen("파일이름.파일형식","모드")

모드

설명

r

읽기 전용으로 파일을 연다. 모드로 파일은 읽을 수만 있으며 데이터를 기록하지는 못한다. 만약 파일이 없을 경우 에러가 리턴된다.

w

쓰기 위해 파일을 연다. 모드로 파일은 쓰기만 가능하며 읽지는 못한다. 도스나 윈도우즈의 파일은 쓰기 전용 속성이 없지만 스트림은 쓰기 전용 상태로 있다. 파일이 없으면 새로 만들고 이미 존재한다면 기존의 파일은 지워진다.

a

추가를 위해 파일을 연다. 추가란 파일의 끝에 다른 정보를 넣는다는 뜻이다. 모드로 파일은 오픈 직후에 FP 파일의 끝으로 이동한다. 파일이 없으면 새로 만든다.

r+

읽고 쓰기가 가능하도록 파일을 연다. 파일이 없을 경우 에러가 리턴된다.

w+

읽고 쓰기가 가능하도록 파일을 연다. 파일이 없을 경우 새로 만든다.

a+

읽기와 추가가 가능하도록 파일을 연다. 파일이 없으면 새로 만든다.



파일을 쓸때 순서

: file open -> Writing  - file close -> file read 

파일에 기록하고 꼭 닫아라~!!

닫지 않으면 파일에서 데이터를 불러올수없다 !!! 명심해야 한다!!!

아참 여기서 Tip

scanf("%s", buff);
gets(data);

이렇게 했을때 scanf를 마칠때 엔터를 입력하고 gets를 입력할려고 하면 안될것이다!!

그 이유는 <gets가 scanf 끝났을때 입력되는 enter를 인식함으로 인식이 안된다!!>

그럼으로 방법을 다시 생각해 봐야된다!!1

scanf("%s%c",buff,&c);

이런식으로 입력 해준다면 엔터를 char c에 넣어줌으로 다음에 입력받을 gets함수가 인식될것이다!!!








<파일에 입력 및 출력 할때 사용되는 함수>

fscanf(파일이름, "입력형식",버퍼) ;

파일에서 읽어들일때 사용되는 함수

fprintf(파일이름,"출력형식",버퍼);

파일로 출력할때 사용되는 함수

fgets(버퍼,크기,파일명);

파일로부터 버퍼에 크기-1 만큼 버퍼에 저장된다. 여기서 파일명 대신 stdin으로 할수 있다
그러면 키보드로부터 입력 받는것이다.
그리고 printf를 이용하여 출력!!

fputs(버퍼, 파일명);

버퍼에 입력된 문자열을 파일에 출력된다!! 여기서도 파일명 대신 stdout 로 하여 모니터로
출력할수 있다.

fgetc()

파일 끝에 도달하면 -1를 반환

feof()

파일 끝에 도달하면 1를 반환