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()関数とは異なり、空白文字を入力できていることが確認できます。

文字列をを入力してください
空白文字も「 」入力できます。

入力された値 = 空白文字も「 」入力できます。


Last updated:2018/01/09
Author:efn

';