 sscanf関数は文字列から書式付きデータを読み込みます。
sscanf関数は文字列から書式付きデータを読み込みます。
これの、セキュリティ強化バージョンがsscanf_s関数です。
VS2005以降でないと使用できません。
stdio.hをインクルードする必要があります。
int sscanf_s(
   const char *buffer,
   const char *format [,
      argument ] ...
);
bufferには、データが格納されているバッファを指定します。formatには、書式指定文字列を指定します。これは、scanf関数のそれと同じです。
cやsの時は、バッファのサイズを指定する、追加パラメータが必要です。
これは、unsignedになります。
では、簡単なサンプルを見てみましょう。
/* sscanf01.c */
#include <stdio.h>
int main()
{
	char szBuf[32];
	char *lpszStr = "12.95";
	int i;
	float f;
	char c;
	sscanf_s(lpszStr, "%s", szBuf, (unsigned)sizeof(szBuf));
	sscanf_s(lpszStr, "%d", &i);
	sscanf_s(lpszStr, "%f", &f);
	sscanf_s(lpszStr, "%c", &c, (unsigned)sizeof(c));
	printf("%s\n", szBuf);
	printf("%d\n", i);
	printf("%f\n", f);
	printf("%c\n", c);
	return 0;
}
実行結果は、次のようになります。
 
使い方は簡単ですね。書式指定文字列により、追加のパラメータが必要になることに注意してください。
Update Sep/11/2007 By Y.Kumei