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()は追加しません。