VS2015でgets()関数を使用したときに報告されたエラーの解決策



Solutions Errors Reported When Using Gets Function Vs2015



get()の機能は、入力ストリームからデータを読み取ることです。 get()関数の詳細な使用法については、を参照してください。 'Scanf()、gets()およびgetline()読み取り入力' 。 VS2015では、gets()関数を使用して入力データを読み取ると、stdio.hヘッダーファイルがプログラムに含まれていても、「エラーC3861:「gets」:識別子が見つかりません」と表示されます。

2.1関数の定義

Gets_s()関数はgets()関数の安全なバージョンであり、その定義された形式は次のとおりです。



char *gets_s( char *buffer, size_t sizeInCharacters )

その中で、パラメータバッファは入力文字列を保存するために使用され、sizeInCharactersはバッファのサイズです。入力が正常に読み取られた場合、gets()関数は入力を保持しているメモリの最初のアドレスを返します。つまり、失敗した場合はバッファアドレスを返し、戻り値はNULLになります。

2.2関連知識

2.2.1文字列の読み取りに成功

Gets_s()関数は、標準入力から文字列を読み取り、改行文字 ' n'に遭遇するまで読み取りを停止します。その後、読み取り文字列の改行文字 ' n'を終了文字 ' 0'に置き換えます。



2.2.2文字列の読み取りエラー

入力文字列の保存に使用されるバッファパラメータがNULLの場合、バッファのサイズを示すsizeInCharactersパラメータの値がゼロ以下の場合、またはバッファバッファのサイズでユーザーが入力した文字列を保存できない場合は、 get_s()関数が間違ったパラメータ処理ルーチンを呼び出すと、プログラムはエラーメッセージを表示します。