次の方法で共有


_cscanf_s、_cscanf_s_l、_cwscanf_s、_cwscanf_s_l

コンソールから読み取ったり書式設定データ。これらは CRT のセキュリティ機能に説明されているように、のセキュリティが強化 _cscanf、_cscanf_l、_cwscanf、_cwscanf_l のセキュリティが強化されたバージョンです。

重要 : 重要

この API は、Windows のランタイムで実行するアプリケーションで使用することはできません。詳細については、でサポート /ZW CRT 関数" "を参照してください。

int _cscanf_s( 
   const char *format [,
   argument] ... 
);
int _cscanf_s_l( 
   const char *format,
   locale_t locale [,
   argument] ... 
);
int _cwscanf_s( 
   const wchar_t *format [,
   argument] ... 
);
int _cwscanf_s_l( 
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);

パラメーター

  • format
    書式指定文字列。

  • argument
    省略可能なパラメーター。

  • locale
    使用するロケール。

戻り値

正常に変換され、再配置フィールドの数。戻り値には、再配置フィールドは含まれません。戻り値は、ファイルの終端で読み取りの EOF です。これは、キーボード入力がオペレーティング システムのコマンド ラインのレベルでリダイレクトする場合に発生します。戻り値 0 は、フィールドが再配置ことを意味します。

これらの関数では、パラメーターの検証が行われます。format が null ポインターの場合、これらの関数は パラメーターの検証に説明されているように、無効なパラメーター ハンドラーが実行されます。実行の継続が許可された場合、これらの関数の戻り値 EOF と errnoは EINVALに設定されます。

解説

_cscanf_s 関数は argumentで指定された位置にコンソールから直接データを読み込みます。_getche 関数は文字を読み取るために使用されます。各省略可能なパラメーターは formatの型指定子に対応する型の変数へのポインターである必要があります。入力の解釈は scanf_s の関数の format のパラメーターと同じ形式と機能がフィールドは、あるフォーム コントロール。_cscanf_s は、通常、入力文字がエコーされますが、最後のが _ungetchにある場合は記述しません。

scanf ファミリの関数の安全なバージョンのように、_cscanf_s と _cswscanf_s は型フィールド文字 c、C、s、Sと [のサイズの引数が必要です。詳細については、「scanf 関数の文字幅指定」を参照してください。

[!メモ]

サイズ パラメーターは size_t 型ではなく、unsigned 型です。

これらの関数のうち _l サフィックスが付けられたバージョンは、現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて同じです。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tcscanf_s

_cscanf_s

_cscanf_s

_cwscanf_s

_tcscanf_s_l

_cscanf_s_l

_cscanf_s_l

_cwscanf_s_l

必要条件

ルーチン

必須ヘッダー

_cscanf_s,_cscanf_s_l

<conio.h>

_cwscanf_s, _cwscanf_s_l

<conio.h> か <wchar.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのすべてのバージョン。

使用例

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
 * and uses _cscanf_s to read in the response.
 * Then _cscanf_s returns the number of items
 * matched, and the program displays that number.
 */

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}

入力

1 2 3

出力

You entered 1 2 3

参照

関連項目

コンソール入出力とポート入出力

_cprintf、_cprintf_l、_cwprintf、_cwprintf_l

fscanf_s、_fscanf_s_l、fwscanf_s、_fwscanf_s_l

scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l

sscanf_s、_sscanf_s_l、swscanf_s、_swscanf_s_l