gets() — 行の読み取り
フォーマット
#include <stdio.h>
char *gets(char *buffer);
言語レベル
ANSI
スレッド・セーフ
はい
説明
gets() 関数は、標準入力ストリーム stdin から行を読み取り、バッファーに保管します。 行は、最初の改行文字 (\n) または EOF まで (その文字を含まない) のすべての文字で構成されています。 読み込みが成功した場合、次に gets() 関数は読み取られた行を戻す前に、改行文字をヌル文字 (¥0) に置き換えます。
戻り値
正常に実行された場合、gets() 関数は引数を戻します。 NULL ポインターの戻り値がある場合、エラー、または文字が読み取られていない EOF 条件を表します。 ferror() 関数または feof() 関数を使用すると、発生した条件を判別することができます。 エラーが発生すると、バッファーに保管される値は未定義なものになります。 EOF 条件が発生すると、バッファーは変更されません。
例
この例では、入力データの行を stdin から取得しています。
#include <stdio.h>
#define MAX_LINE 100
int main(void)
{
char line[MAX_LINE];
char *result;
printf("Please enter a string:¥n");
if ((result = gets(line)) != NULL)
printf("The string is: %s¥n", line);
else if (ferror(stdin))
perror("Error");
}