gets_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
文字入出力関数
プロトタイプ
char *gets_s(char *s, rsize_t n);
説明
gets、getws の代わりとなる、セキュリティを強化した関数です。
gets_s は、stdin から n 個の文字を取り出し、s に格納します。 gets_s が読み取ることのできる最大文字数は n-1 です。
実行時制約の違反が起きると、s[0] が NULL に設定され、改行文字か EOF が見つかるか、読み取りエラーが発生するまで、不確定数の文字が stdin から読み取られて破棄されます。
メモ:Win32 GUI アプリケーションの場合、stdin をリダイレクトする必要があります。
メモ:fgets、fgetws を使用すると、結果の配列に格納できない入力行の読み取りを正しく処理することができます。 エンド ユーザーは、gets_s ではなく fgets、fgetws を使うことを検討したほうがよいでしょう。
戻り値
成功すると、get_s は文字列引数の s を返します。
EOF(end-of-file)やエラーの場合には、NULL を返します。
例
#include <stdio.h> int main(void) { char string[80]; printf("Input a string:"); gets_s(string,5); printf("The string input was: %s\n", string); return 0; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
gets_s |
+ |
+ |
+ |
+ |