1) 문자 출력 함수
#include <stdio.h>
int putchar(int c);
int fputc(int c, FILE* stream);
putchar 함수는 함수 호출 시 인자로 전달된 문자를 '표준 출력 스트림(stdout)'으로 출력해 주는 역할을 하는 함수이다. 따라서 모니터에다가 하나의 문자를 출력해 주는 함수라고 할 수 있다.
fputc 함수도 putchar 함수와 같은 기능을 하는 함수인데, 다만 차이점이 있다면 "문자를 출력할 스트림을 지정할 수 있다는 특징"이 있다. 즉 putchar 함수는 모니터로만 문자를 출력하지만, fputc 함수는 모니터뿐만 아니라, 파일에도 문자를 출력할 수 있는 함수이다.(파일에 문자를 출력 한다는 의미는 파일에 문자를 저장한다는 의미이다.)
2) 문자 입력 함수
#include <stdio.h>
int getchar(void);
int fgetc(FILE* stream);
getchar 함수는 '표준 입력 스트림(stdin)'으로 부터 한 문자를 입력받아서 반환해 주는 함수이다.
따라서 키보드로부터 하나의 문자를 입력받은 함수라고 할 수 있다.
int putchar(int c);
int fputc(int c, FILE* stream);
putchar 함수는 함수 호출 시 인자로 전달된 문자를 '표준 출력 스트림(stdout)'으로 출력해 주는 역할을 하는 함수이다. 따라서 모니터에다가 하나의 문자를 출력해 주는 함수라고 할 수 있다.
fputc 함수도 putchar 함수와 같은 기능을 하는 함수인데, 다만 차이점이 있다면 "문자를 출력할 스트림을 지정할 수 있다는 특징"이 있다. 즉 putchar 함수는 모니터로만 문자를 출력하지만, fputc 함수는 모니터뿐만 아니라, 파일에도 문자를 출력할 수 있는 함수이다.(파일에 문자를 출력 한다는 의미는 파일에 문자를 저장한다는 의미이다.)
2) 문자 입력 함수
#include <stdio.h>
int getchar(void);
int fgetc(FILE* stream);
getchar 함수는 '표준 입력 스트림(stdin)'으로 부터 한 문자를 입력받아서 반환해 주는 함수이다.
따라서 키보드로부터 하나의 문자를 입력받은 함수라고 할 수 있다.
fgetc 함수도 getchar함수와 같은 기능을 하는 함수인데, 다만 차이점이 있다면 문자를 입력받을 스트림을 지정할 수 있다는 특징이 있다. 따라서 fgetc 함수를 이용하면 키보드뿐만 아니라 파일로부터도 데이터를 입력받을 수 있다.
3) EOF에 대해서
함수의 선언을 보면, 경우에 따라(오류 발생 혹은 파일의 끝에 도달했을 경우) EOF를 리턴한다고 되어있다. EOF가 실제로 지니고 있는 값은 -1이다.
fputc 혹은 putchar 함수 호출시 오류가 발생하면 이 EOF가 반환된다.
또한 fgetc 혹은 getchar 함수 호출 시에도 오류가 발생하면 EOF가 반환된다.
중요한 사실은 fgetc 나 getchar 함수가 파일의 끝에 도달하는 경우에도 EOF가 반환된다.
fgetc 함수는 파일에서 데이터를 읽어들이는 용도로 사용될 수 있는 함수다.
따라서 하나의 파일을 정해 놓고 계속해서 데이터를 읽다 보면 결국에는 파일의 끝에 도달하게 된다.
getchar 함수는 키보드로부터 데이터를 읽어들이는 함수다.
파일의 끝은 존재하지 않는다. 그러나 키보드로 부터 Ctrl + Z 키를 입력하는 경우 getchar 함수가 EOF를 반환한다. 즉, 키보드로부터 입력을 받을 경우에는 Ctrl + Z 키의 입력을 파일의 끝이라고 정의해 놓은 것이다.
4번째 줄에서는 키보드를 통해서 입력받은 데이터가 EOF인지 확인하고 있다.
- 실행결과
12
12
34
34
^z
program 종료
3) EOF에 대해서
함수의 선언을 보면, 경우에 따라(오류 발생 혹은 파일의 끝에 도달했을 경우) EOF를 리턴한다고 되어있다. EOF가 실제로 지니고 있는 값은 -1이다.
fputc 혹은 putchar 함수 호출시 오류가 발생하면 이 EOF가 반환된다.
또한 fgetc 혹은 getchar 함수 호출 시에도 오류가 발생하면 EOF가 반환된다.
중요한 사실은 fgetc 나 getchar 함수가 파일의 끝에 도달하는 경우에도 EOF가 반환된다.
fgetc 함수는 파일에서 데이터를 읽어들이는 용도로 사용될 수 있는 함수다.
따라서 하나의 파일을 정해 놓고 계속해서 데이터를 읽다 보면 결국에는 파일의 끝에 도달하게 된다.
getchar 함수는 키보드로부터 데이터를 읽어들이는 함수다.
파일의 끝은 존재하지 않는다. 그러나 키보드로 부터 Ctrl + Z 키를 입력하는 경우 getchar 함수가 EOF를 반환한다. 즉, 키보드로부터 입력을 받을 경우에는 Ctrl + Z 키의 입력을 파일의 끝이라고 정의해 놓은 것이다.
int main(){ char ch=0; while(ch != EOF){ ch=getchar(); putchar(ch); } printf("program 종료 \n"); return 0; }
- 실행결과
12
34
34
^z
program 종료
'C언어' 카테고리의 다른 글
20. 표준 입 · 출력과 버퍼(Buffer) (1) | 2011.01.02 |
---|---|
19. 문자열 단위 입 · 출력 함수 (0) | 2011.01.01 |
17. 스트림과 데이터의 전송 (0) | 2010.12.31 |
16. 함수포인터 (0) | 2010.12.31 |
15. 포인터와 const 키워드 (0) | 2010.12.25 |