printf_s、wprintf_s

提供: RAD Studio
移動先: 案内検索

stdio.h:インデックス への移動



ヘッダー ファイル

stdio.h

カテゴリ

書式付き入出力関数

プロトタイプ

int printf_s(const char * restrict format, [, argument, ...]);

int wprintf_s(const wchar_t * restrict format, [, argument, ...]);

説明

printf、wprintf の代わりとなる、セキュリティを強化した関数です。

printf_s は、printf、wprintf と同等のものですが、format および argument が NULL ポインタにならないよう実行時制約が追加されています。

メモ: Win32 GUI アプリケーションの場合、stdout をリダイレクトする必要があります。

戻り値

成功すると、printf_s は出力バイト数を返します。成功しなければ負の値を返します。

#include <stdio.h>
#include <string.h>
#define I 555
#define R 5.5
int main(void)
{
  int i,j,k,l;
  char buf[7];
  char *prefix = buf;
  char tp[20];
  printf_s("prefix  6d      6o      8x        10.2e        "
  "10.2f\n");
  strcpy(prefix,"%");
  for (i = 0; i < 2; i++)
  {
   for (j = 0; j < 2; j++)
     for (k = 0; k < 2; k++)
       for (l = 0; l < 2; l++)
       {
       if (i==0)  strcat(prefix,"-");
         if (j==0)  strcat(prefix,"+");
            if (k==0)  strcat(prefix,"#");
                if (l==0)  strcat(prefix,"0");
                    printf_s("%5s |",prefix);
                    strcpy(tp,prefix);
                    strcat(tp,"6d |");
                    printf_s(tp,I);
                    strcpy(tp,"");
                    strcpy(tp,prefix);
                    strcat(tp,"6o |");
                    printf_s(tp,I);
                    strcpy(tp,"");
                    strcpy(tp,prefix);
                    strcat(tp,"8x |");
                    printf_s(tp,I);
                    strcpy(tp,"");
                    strcpy(tp,prefix);
                    strcat(tp,"10.2e |");
                    printf_s(tp,R);
                    strcpy(tp,prefix);
                    strcat(tp,"10.2f |");
                    printf_s(tp,R);
                    printf_s("  \n");
                    strcpy(prefix,"%");
     }
  }
return 0;
}

移植性

POSIX Win32 ANSI C ANSI C++

printf_s

+

+

+

+

wprintf_s

+

関連項目