int printf_s( const char *format [, argument]... );使い方は、printf関数と同じです。何が違うのかというと、 printf関数では書式指定文字列(format)がヌルポインタかどうかのみをチェックしているのに対して、printf_s関数は書式指定文字までもチェックします。
/* printfs01.c */ #include <stdio.h> int main() { printf_s("%s君は、%d歳です。\n", "田中", 20); printf_s("佐藤さんは20歳です\n"); return 0; }実行結果は、次のようになります。
これは、どうということもないですね。
整数値を文字列に変換する関数に_itoa関数がありました。これも、新バージョンが用意されています。
errno_t _itoa_s( int value, char *buffer, size_t sizeInCharacters, int radix );valueは、文字列に変換するint値です。
変換した文字列を格納するバッファ。
sizeInCharactersは、バッファサイズを指定します。
radixは、基数で2-36の範囲で指定。
では、整数値を10進、16進、2進で表した文字列に変換するプログラムを作ってみましょう。
/* itoas01.c */ #include <stdio.h> #include <stdlib.h> int main() { int a = 15; char sza[8]; _itoa_s(a, sza, sizeof(sza), 10); printf_s("a(10進) = %s\n", sza); _itoa_s(a, sza, sizeof(sza), 16); printf_s("a(16進) = %s\n", sza); _itoa_s(a, sza, sizeof(sza), 2); printf_s("a(2進) = %s\n", sza); }実行結果は次のようになります。
ま、簡単といえば簡単ですね。
Update Aug/12/2007 By Y.Kumei