Cプログラミングでは、 入力 そして 出力 活動は欠かせません。 Fgets() で利用できる多くの機能のうちの 1 つです 入力 。この堅牢な機能の助けを借りて、開発者は特定のストリームから情報を安全かつ正確に読み取ることができます。この記事では、 インス そして アウト の fgets() 、その上に進みます 構文、アプリケーション、サンプルコード 、 そして 予想された結果 。
の fgets() 関数 、略して 'ファイル取得文字列' 、ファイル ストリームから文字列を読み取るためによく使用されます。 標準入力 (stdin) 。廃止予定のより安全な代替手段を提供します。 取得()関数 、以前は使用されていましたが、現在はセキュリティ上の懸念が生じています。関数 fgets() は、読み取る文字数を制限し、改行文字を効果的に処理する手段を提供します。
リストから配列Javaへ
fgets() の構文は次のとおりです。
char *fgets(char *str, int size, FILE *stream);
パラメータは次のように分類されます。
文字列: これは、入力を保存するために使用される文字配列 (文字列) への参照です。
サイズ: 総文字数(文字数も含む) ヌル文字「0」 )を読み取ることができます。
ストリーム: 入力ファイル ストリームへのポインティング デバイス、または 標準入力 それ fgets() から読みます。
fgets() がどのように機能するかをよりよく理解するために、例を見てみましょう。
例:
#include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); printf('You entered: %s', input); return 0; }
出力:
Enter a string: Hello, World! You entered: Hello, World! Enter a string: This is a very long string that exceeds the limit of the input buffer. You entered: This is a very long string that exceeds the limit of the input buffer. If a user types an empty text by simply pressing the Enter key: Enter a string: You entered:
説明:
上の例では、適切なヘッダー ファイルを組み込むことから始めます。 'stdio.h' 。その後、入力文字列はサイズ 100 の文字配列入力として定義されます。
使用する printf()関数 の場合、プログラムはユーザーに文字列の入力を求めます。その後、 標準入力 として使用されます 入力ストリーム 、 そして fgets() 宛先文字列として入力とともに使用されます。 サイズ(入力) 、および読み取る最大サイズ。その後、プログラムは使用します printf() 入力した文字列を出力します。
Fgets() 機能できる 読む そして 保存 改行文字 「ん」 最大サイズに達する前に表示された場合。これにより、入力行が完全に読み取られたのか、スペースの制約により切り詰められたのかを知ることができます。
例:
変更されたコード スニペットを使用すると、 strcspn() メソッド に 消去 の 改行 入力文字列の文字:
#include #include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); input[strcspn(input, ' ')] = ' '; // Remove the newline character printf('You entered: %s', input); return 0; }
出力:
Java文字列をブール値に変換
Enter a string: Hello World You entered: Hello World
説明:
指定された文字セットにない文字で構成される部分文字列の長さは、 strcspn() 関数 。この場合、 ヌル文字「0」 を指定した後に改行文字を置換するために使用されます。 「ん」 検索する文字セットとして。
結論:
結論から言うと、読んでみると 入力文字列 C を使用したファイル ストリームまたは標準入力から fgets() メソッド 信頼性が高く、安全です。これは、入力の最大サイズを選択でき、改行文字を処理できるため、規制された方法でユーザー入力を処理するのに便利なツールです。
廃止された 取得()関数 より安全なものに置き換えられます fgets() 関数 によって引き起こされるセキュリティ上の欠陥を修正します。 バッファオーバーフロー 。これにより、入力文字列が許容値を超えないようにして、潜在的なメモリ破損の問題を回避します。
提供されているサンプルコードは、使用方法を示しています。 fgets() ユーザー入力を正しくキャプチャし、改行文字が表示された場合はそれを削除します。正確な文字列処理を保証するには、入力制約を考慮し、改行文字を処理することがいかに重要であるかを強調しています。
開発者は、C プログラムのセキュリティと堅牢性を向上させることができます。 fgets() 。入力の最大サイズを定義することで、大きな入力によって引き起こされる予期せぬ動作や潜在的なセキュリティ侵害を回避できます。
C プログラマを目指す人は、次のことに精通すべきです。 fgets() 安全かつ効果的な入力処理を保証するための使用説明書を参照してください。この機能を認識している開発者は、頻繁に遭遇する入力関連の脆弱性を防ぐ、より信頼性が高く安全なソフトウェアを作成できます。