개인노트

[C언어] 문자 단위의 입출력 함수, EOF 본문

C/문법

[C언어] 문자 단위의 입출력 함수, EOF

BillnairK 2017. 7. 13. 16:54

▶ 문자 출력 함수 - putchar, fputc


#include <stdio.h>

int putchar(int c); // putchar 함수

int fputc(int c, FILE * stream);  // fputc 함수, FILE * stream은 문자를 전송할 스트림을 지정(파일도 가능)

▶ 성공시에는 문자가 출력되고 실패 시에는 EOF(End of File) 반환


▶ 문자 입력 함수 - getchar, fget


#include <stdio.h>

int getchar(void);

int fgetc(FILE * stream); // 문자 출력 함수와 동일한 관계

▶ 파일의 끝에 도달하거나 함수 호출 실패 시 EOF 반환


[ 예제 ]


#include <stdio.h>


int main()

{

int ch, te;


ch = getchar(); // 문자를 입력 받고 int형 변수 ch에 저장

te = fgetc(stdin); // 엔터 키 입력 후 int형 변수 te에 저장


putchar(ch); // putchat 함수에 변수 ch를 인자로 전달 후 출력

fputc(te, stdout); // fputc 함수에 변수 te를 인자로 전달 후 대상 스트림을 stdout으로 정하여 출력된다.



▶ 문자 입출력의 EOF 


EOF = End Of File 이며, 파일의 끝을 표현하기 위해 정의해 놓은 상수이다.


fgetc과 getchar 함수는 입력을 받는 함수인데 언제 EOF를 반환하게 될까?


1. 함수 호출의 실패

2. 윈도우에서 ctrl + z, 리눅스에서 ctrl + d 를 입력 했을 경우


[ 예제 ]


#include <stdio.h>


int main()

{

int ch;


while(1){

ch = getchar();

if (ch == EOF)

break;

putchar(ch);

}

return 0;

}


Comments