(InstaGrap 개발) freopen 사용법 + C 예제코드
by 줌코딩
C에서 입출력 처리하기
앞선 포스트에서 Linux 명령어를 이용해서 stdin과 stdout을 처리하는 방법에 대해서 이야기 해봤다.
그렇다면 C 코드 내부에서 input file을 받고 저장할 수 있는 방법은 없을까?
freopen() 함수 이용하기
이 함수를 이용하면 C 내부에서 input과 output을 처리 할 수 있다.
FILE *freopen(const char *path, const char *mode, FILE *fp);
- path : 열려있는 스트림을 닫고 path를 연다.
- mode : 어떤 목적으로 파일을 여는지 mode를 결정한다.
- fp : 파일의 type을 정의한다.
예제 코드
인풋 내용 중에 대문자가 있으면 다 소문자로 바꿔주는 프로그램이다.
#include <stdio.h>
main(){
freopen("uppercase.txt", "r", stdin);
freopen("lowercase.txt", "w", stdout);
int c;
while(( c=getchar() ) != EOF) putchar(tolower(c));
return 0;
}
실행한 후에 아래와 같이 lowercase.txt 파일이 생성되었고 그 안에는 해당 내용이 들어가 있는 것을 볼 수 있다.
jeongjinhyeog-ui-MacBook-Pro:instaGrap jeongjinhyeog$ cat uppercase.txt
THIS TEXT IS WRITTEN IN UPPERCASE.
THERE ISN'T ANY LOWER CASE LETTER IN THE ENTIRE FILE.
jeongjinhyeog-ui-MacBook-Pro:instaGrap jeongjinhyeog$ ./lower
jeongjinhyeog-ui-MacBook-Pro:instaGrap jeongjinhyeog$ cat lowercase.txt
this text is written in uppercase.
there isn't any lower case letter in the entire file.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS