sscanf 에서 %*d 사용법좀.
글쓴이: jongsuknim / 작성시간: 화, 2004/08/17 - 10:26오전
제가 보는 책에
sscanf("111222" , "%*d%*d" , 3 , &a , 3 , &b );
하면 a = 111 b = 222
가 된다는 식으로 나왔는데요..막상 해보니 안되네요..
sscanf( "111222" ,"%3d%3d" , &a , &b );
이건 되는데요..
%*d이거 사용법좀 알려 주세요..
Forums:
Re: scanf 에서 %*d
printf 에서는 %*d 하면은 필드값 대신에 아규먼트값이 대체되는게 맞습니다.
즉,
printf("%*d", 5, 20);
는
printf("%5d", 20);
과 같다고 볼수 있죠.
하지만, scanf 에서 이 * 은 다른 의미를 가집니다.
즉, scanf 로 스캔하는 과정에서 해당 부분에 맞는 문자열을 "discard" 한다는
의미입니다.
보통, 일정한 포맷으로 들어오는 입력에서 특정 부분이 필요 없을때 사용하죠.
를 해 보시면 a 에 111 이 들어가는것을 알수 있습니다..
그리고,
sscanf("123111, "%*3d%d", &a, &b);
라고 적으면
gcc 컴파일러에서 -Wall 옵션을 줬을때
이라는 에러를 만나게 될 겁니다.
댓글 달기