トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
| 概要 |
標準入力から文字列を1行受け取る。 |
|
| ヘッダ | ||
| 形式 |
char* gets_s(char* s, rsize_t n); |
|
| 引数 |
s |
文字列を受け取る配列を指すポインタ。ヌルポインタであってはならない。 |
|
n |
s が指す配列へ書き込み可能な文字数。0 より大きく、RSIZE_MAX以下でなければならない。 |
|
| 戻り値 |
成功時は引数s がそのまま返される。 |
|
| 詳細 |
標準入力📘から文字列を受け取る。改行文字を読み取ったとき、あるいは、ファイルの終わりに達したときに読み込みを終える。改行文字を読み取った場合、それは配列に書き込まれない(この点は fgets関数と異なる)。配列に格納された最後の文字の後ろに、ヌル文字(‘\0’) が付加される。 読み取られる文字数は最大で、引数n - 1 文字である。引数s が指す配列には、さらに末尾にヌル文字が加わるため、引数 n の値以上の要素数が必要である。 引数n は、0 より大きく、RSIZE_MAX以下でなければならない。この範囲内にない場合、実行時制約への違反となる。この場合、s[0] にヌル文字が書き込まれ、読み込まれた文字列は破棄される。 この関数は、__STDC_LIB_EXT1__ 事前定義マクロが定義されている処理系📘で使用できる。このマクロが定義されていない場合に使用できるかどうかは処理系定義である。また、この関数を使用するのなら、<stdio.h> をインクルードする前に、__STDC_WANT_LIB_EXT1__ という名前のマクロを、置換結果 1 になるように定義する。このマクロが 0 に置換されると、この関数は宣言・定義されない[1]。 |
|
| 注意 | ||
| 使用例 |
実行結果:
|
|
| 関連 |
この関数が定義されていない場合は、fgets関数を検討する。ただし改行文字の扱いが異なることに注意。gets関数は C11規格からは削除されているが、まだ存在していたとしても(過去の規格しかサポートされていない処理系であっても)使ってはならない。 |
|
| 解説章 | ||
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。
( の直後、) の直前に空白を入れない)return 0; を削除(C言語編全体でのコードの統一)
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
| X で ポスト/フォロー | LINE で送る | noteで書く |
|
|
管理者情報 | プライバシーポリシー |