목록homoiconic (1)
살아가는 이야기
scanf %n과 sscanf
scanf 함수에서 %n 형식 지정자가 있다. %n은 읽은 문자 개수를 리턴하는 기능이다. 예를 들어서 int 변수 n과 x에 대해 다음과 같이 scanf를 호출했다고 하자. scanf("%d%n", &n, &x); 표준 입력으로 1을 입력했다면 n은 1, x는 1이 되지만 12를 입력했다면 n은 12, x는 2가 된다. %d는 부호도 판별한다. 따라서 +1을 입력했다면 n은 1이 되지만 x는 2가 된다. 형식문자열 지정자 %n은 sscanf에서 진가를 발휘한다. sscanf는 문자열을 입력 스트림으로 간주하여 scanf를 수행한다. 그런데 같은 문자열에 대해 sscanf를 반복하여 사용하려면 scan 시작 지점을 변경해 주어야 한다. 따라서 %n으로 받은 값만큼 시작 지점을 이동시키면 된다. 다음 예를..
컴퓨터, 풀어그림
2011. 4. 8. 14:28