본문 바로가기

C

\n

C언어에서는 개행을 \n으로 표시한다.

그러나 이건 C언어만의 약속일뿐, 다른 환경에서의 개행은 이와 다르다.

그냥...▽
Windows(ms-dos) : \r\n
Mac : \r
Unix : \n

예를 들어 Windows 환경) C프로그램에서 \n을 파일에 저장하면 \r\n으로 변환/저장되고
파일에 저장된 \r\n을 C프로그램상에서 읽으면 \n으로 변환되어 읽혀진다.
대충 잡담은 여기까지 하고 ㅎㅎ

개행 문자를 이용한 예로

while(getchar()!='\n');
 

개행이라는건 '엔터'가 아니던가. 개행, 즉 엔터는 \n으로 표현된다.
위의 소스를 분석해보면
getchar() 함수는 키보드로부터 문자를 읽어들이는 함수이고
키보드로 부터 \n , 즉 엔터값이 입력되기 전까지 반복(while)하겠다.

즉, Enter를 치면 (반복을)종료하겠다 라는 뜻이라 볼 수 있겠고
엔터값을 입력값으로 받지 않을 때 유용하다.

그 반대인 while(getchar()=='\n') 은 Enter값이 입력되는 순간부터 반복을 하겠지?

여튼..활용 예는

int
ClearEnter(void)
{
    while(getchar()!='\n');
}
/* 이런식으로 함수로 선언해주고 */
/*                :                          */
printf("무언가를 입력하세요 : ");
scanf("%s" &thing[i]);
ClearEnter();
printf("blah blah..... : ");
scanf(....... );
/*                :                          */ 

예제 소스가 관련성은 없다 보이지만......여튼 그게 중요한게 아님 ㅎㅎ
위처럼 엔터값을 버림으로 엔터값이 다음 함수에 영향을 미치지 않도록 하고 싶을 때 사용하면 되겠다.

'C' 카테고리의 다른 글

c 표준 라이브러리 함수  (0) 2012.03.30
Call by Reference  (0) 2012.03.19