반응형
stdin(표준 입력 스트림), stdout(표준 출력 스트림), stderr (표준 에러 스트림)
stdin은 키보드로 입력 받는 것.
stdout는 모니터로 출력 하는 것.
stderr은 에러를 출력 하는 것.(모니터로)
문자 출력 함수의 원형.
int putchar (int c);
int fputc(int c, FILE * stream);
putchar, fputc 모두 하나의 문자를 출력할 때 일반적으로 사용하는 함수이다.
차이점은 putchar은 모니터로 출력하지만, fputc는 출력 스트림을 지정할 수 있다는 것.
즉, file로 출력 할 수도 있고, 모니터로 출력할 수도 있다.
문자 입력 함수의 원형.
int getchar(void);
int fgetc(FILE* stream);
getchar, fgetc 모두 하나의 문자를 입력할 때 일반적으로 사용하는 함수이다.
차이점은 putchar은 키보드로 입력 하지만, fputc는 입력 스트림을 지정할 수 있다는 것.
즉, file로 부터 입력 받을 수도 있고, 키보드로 입력 받을 수도 있다.
EOF란?
fputc, fgetc 처럼 파일로 부터 입력 받거나 파일로 출력하는 일이 생기는데
EOF의 실제 값은 -1이며, 파일의 끝에 도달했을 때 반환한다.
즉, 파일의 끝까지 다 읽어들이면 반환되는 값이다. 키보드로 입력 받는 경우는
Ctrl + Z 를 입력하면 파일의 끝이라고 정의 되어 있다.
간단한 사용 예제 (Ctrl + z를 입력 할 때까지 입력하는 문자를 출력하기)
stdin은 키보드로 입력 받는 것.
stdout는 모니터로 출력 하는 것.
stderr은 에러를 출력 하는 것.(모니터로)
문자 출력 함수의 원형.
int putchar (int c);
int fputc(int c, FILE * stream);
putchar, fputc 모두 하나의 문자를 출력할 때 일반적으로 사용하는 함수이다.
차이점은 putchar은 모니터로 출력하지만, fputc는 출력 스트림을 지정할 수 있다는 것.
즉, file로 출력 할 수도 있고, 모니터로 출력할 수도 있다.
문자 입력 함수의 원형.
int getchar(void);
int fgetc(FILE* stream);
getchar, fgetc 모두 하나의 문자를 입력할 때 일반적으로 사용하는 함수이다.
차이점은 putchar은 키보드로 입력 하지만, fputc는 입력 스트림을 지정할 수 있다는 것.
즉, file로 부터 입력 받을 수도 있고, 키보드로 입력 받을 수도 있다.
EOF란?
fputc, fgetc 처럼 파일로 부터 입력 받거나 파일로 출력하는 일이 생기는데
EOF의 실제 값은 -1이며, 파일의 끝에 도달했을 때 반환한다.
즉, 파일의 끝까지 다 읽어들이면 반환되는 값이다. 키보드로 입력 받는 경우는
Ctrl + Z 를 입력하면 파일의 끝이라고 정의 되어 있다.
간단한 사용 예제 (Ctrl + z를 입력 할 때까지 입력하는 문자를 출력하기)
#include <stdio.h>
void main()
{
char ch=0;
while(ch != 'EOF')
{
ch = getchar(); //fgetc(stdin)과 동일
putchar(ch); //fputc(ch, stdout)과 동일.
}
}
getchar, getch, getche 차이점.
3가지의 종류가 있다. 차이가 뭘까? 어떻게 보면 사실 결과는 같을 수도 있다.
일단. 버퍼의 사용 여부의 차이.
버퍼를 사용하는 경우. 입력을 하면 바로 들어가는게 아니라 버퍼에 담긴다.
그 후 종료를 하게 되면 내용이 들어가게 되는데, 때문에 잘못 입력해도 엔터를 치기 전엔 수정 가능.
하지만, 버퍼를 사용하지 않는 getch, getche 의 경우 잘못 입력하고 백스페이스를 누르면
삭제되기는 커녕 백스페이스값이 들어간다..- -;;
그리고 화면표시의 차이.
단순하다. getch의 경우 입력한 값이 화면에 나타나지 않는다. - -;
getch를 반복해서 여러개 받는다고 해도, 화면에는 나타나지 않는다.
getche의 경우 화면에 출려된다. 이를 ehco 라고 하며 앞자를 딴 e가 붙는다고 한다.
getch, getche를 반복문으로 통해 사용하다가 끝내고 싶다면 '\r'을 사용해야 한다.
getchar, getch, getche 차이점.
3가지의 종류가 있다. 차이가 뭘까? 어떻게 보면 사실 결과는 같을 수도 있다.
비교 |
getchar() |
getche() |
getch() |
버퍼 사용 |
O |
X |
X |
화면 표시 |
O |
O |
X |
종료 인식 |
\n |
\r |
\r |
버퍼를 사용하는 경우. 입력을 하면 바로 들어가는게 아니라 버퍼에 담긴다.
그 후 종료를 하게 되면 내용이 들어가게 되는데, 때문에 잘못 입력해도 엔터를 치기 전엔 수정 가능.
하지만, 버퍼를 사용하지 않는 getch, getche 의 경우 잘못 입력하고 백스페이스를 누르면
삭제되기는 커녕 백스페이스값이 들어간다..- -;;
그리고 화면표시의 차이.
단순하다. getch의 경우 입력한 값이 화면에 나타나지 않는다. - -;
getch를 반복해서 여러개 받는다고 해도, 화면에는 나타나지 않는다.
getche의 경우 화면에 출려된다. 이를 ehco 라고 하며 앞자를 딴 e가 붙는다고 한다.
getch, getche를 반복문으로 통해 사용하다가 끝내고 싶다면 '\r'을 사용해야 한다.
유익한 정보가 되셨다면 아래의 추천도 부탁드려요 ^-^
반응형
'프로그래밍. > C언어.' 카테고리의 다른 글
[C언어] 문자열 길이 반환 함수 (strlen) 간단예제. (0) | 2011.03.28 |
---|---|
문자열 입.출력 함수(puts, fputs, gets, fgets) (0) | 2011.03.28 |
C언어 정리. 간략하게 (0) | 2011.03.25 |
파일 중간에 텍스트 삽입하기 (원리 이해) (0) | 2011.03.20 |
여려개의 소스파일 하나로. (0) | 2011.03.20 |