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)하겠다.
그러나 이건 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 |