gets()関数
gets()関数は、標準入力(standard input)から1 行分の入力を受け取る関数です。
※ 正確には改行文字または、ファイルの終りまで文字列を読み取ります。
なお、読み取った改行文字は捨てられます。
また、配列に格納した文字の後にNull文字 ('\0') を書き込みます。
gets()関数とscanf()関数の違いは、文字列の入力しか受け取れないことと標準でスペース文字を読み込めるということです。
C11規格ではこのgets()関数は削除されました
必須ヘッダ
#include <stdio.h>
宣言
char *gets(char *buffer)
gets()関数の利用
gets()関数は、stdin 標準入力ストリームから行を読み取り、buffer に格納します。
構文
gets(入力文字列の格納場所);
戻り値
正常に終了した場合はその引数を返します。
エラーが発生した場合またはファイルの終端に達した場合は、NULL ポインタを返します。
gets()関数を使用した記述例
// gets() program in C.
#include <stdio.h>
int main(int argc, char *args[])
{
char str[256]; // 読込バッファ
memset(str, 0x00, sizeof(str));
printf("非空白類文字列を入力してください\n");
// 文字列の読み込み
gets(str);
printf("入力された値 = %s\n", str);
return 0;
}
実行結果
scanf()関数にて入力待ち状態となります。
文字列をを入力してください
_
キーボードから文字列を入力します。例:空白文字も「 」入力できます。
文字列をを入力してください
空白文字も「 」入力できます。_
Enterを入力後、scanf()関数以降の処理が実行され、入力結果が表示されます。
scanf()関数とは異なり、空白文字を入力できていることが確認できます。
文字列をを入力してください
空白文字も「 」入力できます。
入力された値 = 空白文字も「 」入力できます。