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");
}