fgets()とgets()の違い



Difference Between Fgets



違いは次のとおりです。

1. fgets()関数の2番目のパラメーターは、読み取られる最大文字数を指定します。このパラメーターの値がnの場合、fgets()はn-1文字を読み取るか、最初の改行文字が検出されるまで読み取ります。



2. fgets()が最初の改行を読み取ると、それを文字列に格納します。これは、改行文字を破棄するgets()とは異なります。

3. fgets()関数の3番目のパラメーターは、読み取るファイルを示します。キーボードから入力されたデータが読み取られる場合、stdin(標準入力)がパラメーターとして使用され、識別子はstido.hで定義されます。



#include #define STLEN 14 int main(void) { char words[STLEN] puts('enter a string,please.') fgets(words, STLEN, stdin) printf('your string twice (puts(),then fputs()): ') puts(words) fputs(words, stdout) puts('enter another string,please.') fgets(words, STLEN, stdin) printf('your string twice (puts(),then fputs()): ') puts(words) fputs(words, stdout) puts('done.') return 0 }

puts()関数は、出力される文字列の末尾に改行文字を追加しますが、fputs()は追加しません。