일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- C언어 변수
- HTML5
- Vim
- C언어
- jsp
- java
- 역순
- GUI
- C언어 메모리
- 오라클
- C언어 파일입출력
- 텍스트 파일 읽기
- C언어 배열
- Spring email
- 자바
- C언어 함수
- 포인터
- placehoder
- C언어 구조체
- 날짜
- Naver SmartEditor
- SQL
- 구글 reCaptcha
- URL 다운로드
- Oracle
- Spring google
- gcc
- Google reCaptcha
- TCP/IP 소켓
- C언어 매크로
- Today
- Total
easy software
C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자1 본문
제 블로그 카테고리 FILE I/O 부분에서 fopen과 fclose함수를 소개해 드렸습니다.
이 친구들을 이용하여 간단한 예제를 해보려고 합니다.
문제의 조건은 코드를 통해 mystory.txt라는 파일을 만들어서,
이름 / 주소 / 주민등록 번호를 저장하는 프로그램을 작성해 보는 것입니다.
#include <stdio.h>
int main(void){
int state;
//쓰기전용 스트림 생성
FILE* fp = fopen("mystory.txt", "wt");
/* fopen함수는 오류발생시 NULL을 리턴하므로
파일 개방 중 오류발생시 프로그램을 종료 */
if (fp == NULL){
printf("file open error!\n");
return 1;
}
/* fputs의 두번째 인자로 fp를 전달하여
파일에 정보를 저장 */
fputs("홍길동\n", fp);
fputs("서울시 송파구\n", fp);
fputs("123456-1234567\n", fp);
/* fclose함수는 종료시 오류가 발생하면
0이 아닌 다른값을 리턴하므로 비정상 종료로 판단되면
안내후 프로그램을 종료 */
state = fclose(fp);
if (state != 0){
printf("file close error!\n");
return 1;
}
return 0;
}
먼저 fopen함수를 이용하여 mystory.txt를 텍스트모드의 쓰기전용으로 개방합니다.
이 프로그램의 현재 디렉토리에 mystroy가 없으면 새로 생성할 것입니다.
그리고 if문을 이용하여 무언가를 검사하고 있네요.
fopen은 오류가 발생하면 NULL포인터를 리턴하므로 fp가 NULL이면
에러가 발생했다고 알려주고 프로그램을 종료시킵니다.
이후에 fputs함수를 이용하여 fp가 참조하는 파일에 문자열을 저장하고 있습니다.
fputs은 제 블로그에서 문자열을 출력하는 함수로 소개된 적이 있습니다.
그때는 두번째 인자로 표준 출력 스트림인 stdout을 전달했는데요,
fputs에 두번째 인자에 파일의 정보를 가지고 있는 FILE구조체 변수를 참조하고 있는
변수를 전달하게 되면, 해당 파일에 데이터를 출력, 즉 저장하게 되는 것입니다.
이후에 fclose를 호출하는데요, fclose는 에러가 발생하면 0이 아닌 다른값을 리턴합니다.
그러므로 if문에서 조건을 검사하고있습니다.
아주 간단한 파일 입출력 예제였습니다.
'C언어 > FILE IO' 카테고리의 다른 글
C언어 파일입출력 main에서 파일명을 받아 파일복사하기 (0) | 2015.02.12 |
---|---|
C언어 파일입출력 feof함수를 알아보자 (0) | 2015.02.12 |
C언어 fopen fclose fputs을 이용하여 파일입출력을 해보자2 (0) | 2015.02.12 |
C언어 파일개방모드(파일접근모드+데이터입/출력모드)를 알아보자 (0) | 2015.02.12 |
C언어 파일입출력 fopen과 fclose를 알아보자 (0) | 2015.02.12 |