gets_s, _getws_s

ストリームから行を取得し stdin ます。 これらのバージョンgets _getws では、「 CRT のセキュリティ機能」の説明にあるとおり、セキュリティが強化されています。

構文

char *gets_s(
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s(
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( char (&buffer)[size] ); // C++ only

template <size_t size>
wchar_t *_getws_s( wchar_t (&buffer)[size] ); // C++ only

パラメーター

buffer
入力文字列の格納場所。

sizeInCharacters
バッファーのサイズ。

戻り値

buffer 成功した場合はを返します。 ポインターは、 NULL エラーまたはファイルの終端状態を示します。 ferror feof 発生したものを特定するには、またはを使用します。

Remarks

関数は、 gets_s 標準入力ストリームから行を読み取り、 stdin に格納し buffer ます。 行は、最初の改行文字 (' ') までのすべての文字で構成され \n ます。 gets_s は、改行文字を null 文字 (' ') に置換してから \0 、行を返します。 これに対し、 fgets_s 関数は改行文字を保持します。

最初に読み取られた文字がファイルの終端文字である場合は、null 文字がの先頭に格納され、 buffer NULL が返されます。

_getws_s はのワイド文字バージョンで、 gets_s その引数と戻り値はワイド文字列です。

がまたはが0以下の場合、 buffer NULL または sizeInCharacters バッファーが小さすぎて入力行と null ターミネータを格納できない場合、「 パラメーターの検証」で説明されているように、これらの関数は無効なパラメーターハンドラーを呼び出します。 実行の継続が許可された場合、これらの関数はを返し、 NULL errno をに設定し ERANGE ます。

C++ では、これらの関数の使用はテンプレートのオーバーロードによって簡素化されます。オーバーロードでは、バッファー長を自動的に推論できる (サイズの引数を指定する必要がなくなる) だけでなく、古くてセキュリティが万全ではない関数を新しく安全な関数に自動的に置き換えることができます。 詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。 これを変更するには、「 CRT でのグローバル状態」を参照してください。

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

TCHAR.H ルーチン _UNICODE & _MBCS 未定義 _MBCS _UNICODE
_getts_s gets_s gets_s _getws_s

必要条件

ルーチンによって返される値 必須ヘッダー
gets_s <stdio.h>
_getws_s <stdio.h> または <wchar.h>

コンソールは、ユニバーサル Windows プラットフォーム (UWP) アプリではサポートされていません。 コンソール、、、およびに関連付けられている標準ストリームハンドルは、 stdin stdout stderr C ランタイム関数が UWP アプリで使用できるようになる前にリダイレクトする必要があります。 互換性の詳細については、「互換性」を参照してください。

// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
Hello there!
The line entered was: Hello there!

関連項目

ストリーム入出力
gets, _getws
fgets, fgetws
fputs, fputws
puts, _putws