한문자를 계속 입력받을때...
글쓴이: thisrule / 작성시간: 금, 2004/04/23 - 2:42오후
q 라는 문자가 들어오면 프로그램을 종료하고,
그렇지 않으면 해당 문자에 맞는 일을 처리하려 합니다.
... char ch; while( 1 ) { printf( "문자하나를 입력하세요... " ); scanf( "%c", &ch ); if( ch == 'q' ) exit( 0 ); else { /* to do something */ } } ...
처음 수행시에는 잘 되지만 while문을 한바퀴돌고 나서는 제대로 수행되지
않아, ch에 저장된걸 print해보면 '\n'이 들어있습니다.
그런데 위와 같은 프로그램에서 어떤 사람이 작성한걸 보니scanf( "%c", &ch );
대신에scanf( "%c%*c", &ch);
라고 했는데 그런 현상이 안생기더라구요.
위 두 scanf 함수의 차이가 뭘까요.
%*c 라는건 처음 봤는데 설명 부탁드립니다.
Forums:
man scanf간단히 말씀드리면"%c%*c"는 cha
man scanf
간단히 말씀드리면
"%c%*c"는 chararcter를 하나 읽어들이고(뒤이어 지정하는 pointer가 가리키는 곳에) 하나 무시하는 겁니다.
KISS...
Keep It Small and Simple
댓글 달기