C言語のfgets関数の使い方についてわかりやすく詳しく解説

fgets関数は、文字列の入力を安全に行うための重要な関数です。

この記事では、C言語のfgets関数の使い方について詳しく解説します。

記事を読むことで、fgets関数の基本的な使い方や具体的な使用例、注意点と解決策について理解することができます。

初心者の方にもわかりやすく解説しているので、ぜひ参考にしてください。

目次から探す

fgets関数とは

fgets関数の概要

fgets関数は、C言語で文字列を入力する際に使用される関数です。

この関数は、指定した文字数分だけ文字列を読み込み、指定した変数に格納します。

fgets関数の基本的な構文は以下の通りです。


char *fgets(char *str, int size, FILE *stream);
  • str: 文字列を格納するための配列へのポインタ
  • size: 読み込む文字列の最大長(配列のサイズ)
  • stream: 入力元のファイルポインタ(通常はstdin)

fgets関数は、指定したサイズ-1文字までの文字列を読み込みます。

読み込んだ文字列は、改行文字(‘\n’)を含む場合も含まない場合も、指定した配列に格納されます。

fgets関数の戻り値は、成功した場合には読み込んだ文字列の先頭アドレス(strの値)を返し、エラーが発生した場合やファイルの終端に達した場合にはNULLを返します。

以下に、fgets関数の使用例を示します。


#include <stdio.h>
int main() {
    char str[100];
    printf("文字列を入力してください: ");
    fgets(str, sizeof(str), stdin);
    printf("入力された文字列: %s", str);
    return 0;
}

この例では、ユーザーに文字列の入力を促し、入力された文字列を表示しています。

fgets関数を使うことで、指定した配列にユーザーからの入力を安全に格納することができます。

文字列を入力してください: Hello, World!
入力された文字列: Hello, World!

fgets関数の基本的な使い方

fgets関数は、C言語で文字列を入力する際に使用される関数です。

主に標準入力から文字列を読み込むために利用されます。

fgets関数の仕様

fgets関数の仕様は以下の通りです。


char *fgets(char *str, int n, FILE *stream);
  • str: 文字列を格納するための配列へのポインタ
  • n: 読み込む最大文字数(改行文字も含む)
  • stream: 入力元のストリーム(通常はstdin)

fgets関数の引数

fgets関数には3つの引数があります。

str

文字列を格納するための配列へのポインタ

fgets関数は、読み込んだ文字列をこの配列に格納します。

配列は事前に十分な大きさで確保しておく必要があります。

n

読み込む最大文字数(改行文字も含む)

fgets関数は、指定した最大文字数までの文字列を読み込みます。

改行文字も文字数に含まれます。

stream

入力元のストリーム(通常はstdin)

fgets関数は、指定したストリームから文字列を読み込みます。

標準入力(コンソールからの入力)の場合は標準入力(stdin)を指定し、ファイルから読み取る場合はファイルポインタを渡します。

fgets関数の戻り値

fgets関数の戻り値は、成功した場合には読み込んだ文字列を指すポインタを返します。

読み込む文字列がない場合やエラーが発生した場合にはNULLを返します。

以下はfgets関数の基本的な使い方の例です。


#include <stdio.h>
int main() {
    char str[100];
    printf("文字列を入力してください: ");
    fgets(str, sizeof(str), stdin);
    printf("入力された文字列: %s", str);
    return 0;
}

この例では、ユーザーに文字列の入力を促し、入力された文字列を表示しています。

fgets関数を使うことで、改行文字を含む文字列を安全に読み込むことができます。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す