C 言語の scanf 関数の入力形式に関する最適化のヒントを共有する

WBOY
リリース: 2024-02-18 10:46:06
オリジナル
969 人が閲覧しました

C 言語の scanf 関数の入力形式に関する最適化のヒントを共有する

C 言語 scanf 入力形式の最適化スキルの共有

C 言語では、ユーザー入力からデータを取得する必要があることが多く、scanf 関数は一般的に使用される入力関数です。ただし、関数 scanf を使用する場合は、入力データを正しく読み取って処理できるようにするために、いくつかの点に注意する必要があります。この記事では、scanf 入力形式を最適化するためのヒントをいくつか紹介し、具体的なコード例を示します。

  1. フォーマット文字を使用します:
    フォーマット文字は、読み取るデータの種類を指定するために scanf 関数で使用される文字です。一般的な形式文字には、%d (整数)、%f (浮動小数点数)、%c (文字) などがあります。 scanf 関数を使用する場合は、誤ったデータの読み取りを避けるために、入力データ型に応じて適切なフォーマット文字を選択する必要があります。
int num;
printf("请输入一个整数:");
scanf("%d", &num);
ログイン後にコピー
  1. 空白文字をスキップする:
    入力を読み取るとき、scanf 関数は先頭の空白文字 (スペース、タブ、改行など) を自動的に無視します。ただし、場合によっては、空白文字をスキップした後に次の文字を読み取る必要があります。スペースを使用して、scanf 関数に入力内の空白文字を読み取ってスキップするように指示できます。
char c;
printf("请输入一个字符:");
scanf(" %c", &c);
ログイン後にコピー
  1. 入力バッファをクリアします:
    scanf 関数を使用して文字または文字列を読み取る場合、キャリッジ リターンやその他の無効な文字が入力バッファに残ることがあります。この場合、後続の入力操作が正常に進行できるようにするために、入力バッファをクリアする必要があります。
char str[20];
printf("请输入一个字符串:");
scanf("%19s", str);
int c;
while ((c = getchar()) != '
' && c != EOF) {}
ログイン後にコピー
  1. 入力長の制限:
    ユーザーが入力した文字または文字列が特定の長さを超えないようにする場合は、フォーマット文字の幅修飾子を使用して、入力長を制限します。このうち、%ns の n は n-1 文字まで読み込むことを意味します。
char name[10];
printf("请输入您的姓名(不超过10个字符):");
scanf("%9s", name);
ログイン後にコピー
  1. 不正な入力の処理:
    ユーザーが不正なデータ型を入力すると、scanf 関数は読み取りが失敗したことを示す 0 を返します。誤入力に対処するために、戻り値を判断してユーザーに再入力を促すことができます。
int num;
printf("请输入一个整数:");
while (scanf("%d", &num) != 1) {
    printf("输入错误,请重新输入一个整数:");
    while ((c = getchar()) != '
' && c != EOF) {}
}
ログイン後にコピー

要約:
上記の最適化手法を使用すると、C 言語の scanf 関数をより適切に使用してユーザー入力を読み取ることができます。書式文字の合理的な選択、空白文字のスキップ、入力バッファのクリア、入力長の制限、および誤った入力の処理により、プログラムの堅牢性とユーザー エクスペリエンスを大幅に向上させることができます。

注: 実際の開発では、ユーザー入力に常に注意を払い、必要な境界チェックとエラー処理を実行して、プログラムが正常に実行されることを確認する必要があります。上記のヒントは参考用です。特定のアプリケーションの実際のニーズに応じて調整してください。

以上がC 言語の scanf 関数の入力形式に関する最適化のヒントを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!