_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