int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format [, argument] ... );bufferは、出力を格納するバッファを指定します。
sizeOfBufferには、格納する最大も字数を指定します。
formatは、書式指定です。
関数が成功すると書き込まれた文字数が返され、失敗したときは-1が返されます。
では、サンプルを見てみましょう。
/* sprintf01.c */ #include <stdio.h> int main() { char szName[] = "マイケル", szBuf[64]; int nAge = 10; double bl = 172.5; sprintf_s(szBuf, sizeof(szBuf), "%sは%d歳です。身長は%5.1fcmです\n", szName, nAge, bl); printf(szBuf); return 0; }実行結果は次のようになります。
では、戻り値も調べてみましょう。
/* sprintf02.c */ #include <stdio.h> int main() { char szName[] = "田中佳子", szBuf[64]; int nRet, nAge = 20; nRet = sprintf_s(szBuf, sizeof(szBuf), "私の名前は%sです\n年齢は%d歳です\n", szName, nAge); printf(szBuf); sprintf_s(szBuf, sizeof(szBuf), "返された値は%dです\n", nRet); printf(szBuf); return 0; }実行結果は次のようになります。
この例では、文字列はANSCIを使っているので返される値は
文字数ではなくバイト数である点に注意してください。
ま、どうということもありませんね。
Update Jul/06/2006 By Y.Kumei