Module/WindowsAPI

sscanf() .....

퓨림노 2008. 8. 21. 23:09
int sscanf(char *s, const char *format, ...)

sscanf는 scanf와 비교했을때 앞에 char *s 부분이 추가된것만 다릅니다.
다른건 완벽하게 똑같이 동작합니다.

scanf가 화면에서 사용자로부터 입력받아서 그걸 변수에 저장하는거 아시죠?
그걸 C 내부에서는 어떻게 처리할까요?

사용자가 입력한건 C는 문자열로 인식하고
입력 버퍼에 들어가 있게 될겁니다.
그걸 scanf 함수에서 내부 처리를 거쳐 변수에 저장하게 되죠

sscanf는 사용자에게서 문자열을 입력받는 대신 문자열 변수에서 문자열을 입력받습니다.
앞에 기본형에서 char *s 부분이 문자열을 써주는 부분인데요
이 문자열에 저장된 값을 scanf에서 사용자가 입력한 값이라고 생각하고
처리하는 거죠

<예>
main()
{
char s[] = "31298 87.375";
int x;
float y;

sscanf(s, "%d%f", &x, &y);
printf("%s\n%s%6d\n%s%8.3f\n",
"The values stored in character array s are:",
"Integer:", x, "Float:", y);
return 0;
}