ホームページ >バックエンド開発 >C++ >C言語のscanf関数の正しい使い方

C言語のscanf関数の正しい使い方

WBOY
WBOYオリジナル
2024-02-19 18:04:06965ブラウズ

C言語のscanf関数の正しい使い方

C 言語で scanf 関数を正しく使用する方法

はじめに:
C 言語では、scanf 関数は一般的に使用される入力関数の 1 つです。ユーザーがキーボードからデータを入力できるようになります。ただし、scanf 関数の一部の機能や使用法には微妙な違いがあるため、問題が発生しやすい場合があります。この記事では、scanf関数の正しい使い方と注意点を、具体的なコード例を交えて紹介します。

1. scanf 関数の基本的な使用法:
scanf 関数の基本的な使用法は非常に簡単で、フォーマット文字列をパラメータとして使用し、フォーマット文字列は入力のタイプとフォーマットを指定します。データ。たとえば、「%d」は整数の入力を意味し、「%f」は単精度浮動小数点数の入力を意味し、「%s」は文字列の入力を意味します。

サンプルコード 1:

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);  // 输入一个整数
    printf("您输入的整数是:%d
", num);
    return 0;
}

2. scanf 関数の戻り値とバッファの問題:
scanf 関数は、データの読み込みに成功した場合、読み込みに成功したデータの数を返します。失敗すると、EOF が返されます。読み取りが失敗すると、scanf 関数は入力バッファーにエラーを残すことに注意することが重要です。これにより、後続の入力操作で予期しない結果が生じる可能性があります。

サンプル コード 2:

#include <stdio.h>
int main() {
    int num;
    char ch;
    printf("请输入一个整数和一个字符:");
    scanf("%d", &num);  // 输入一个整数
    scanf(" %c", &ch);  // 输入一个字符(注意前面的空格)
    printf("您输入的整数是:%d
", num);
    printf("您输入的字符是:%c
", ch);
    return 0;
}

上記のコードでは、2 番目の scanf 関数の前にスペースがあります。目的は、前の scanf によって入力バッファに残った改行文字を削除することです。関数。そうしないと、2 番目の scanf 関数がバッファ内の改行文字を読み取り、誤った結果を生成します。

3. scanf 関数の書式文字列の問題:
書式文字列を使用するときは十分に注意してください。書式文字列が間違っていると、プログラムがクラッシュしたり、間違った結果が生成されたりする可能性があります。

サンプル コード 3:

#include <stdio.h>
int main() {
    int num1, num2;
    printf("请输入两个整数:");
    scanf("%d%d", &num1, &num2);  // 输入两个整数
    printf("您输入的两个整数是:%d和%d
", num1, num2);
    return 0;
}

上記のコードの最初の scanf 関数の書式文字列 "%d%d" は、スペースとタブを使用するか、改行で区切って 2 つの整数を読み取ることを意味します。入力時に 2 つの整数を適切に分離しないと、入力エラーが発生します。

4. scanf 関数の入力制限の問題:
scanf 関数は、デフォルトで入力ターミネータとしてスペース、タブ、または改行文字を使用します。入力の長さを制御する必要がある場合は、フォーマット文字列で修飾子を使用できます。

サンプル コード 4:

#include <stdio.h>
int main() {
    char name[20];
    printf("请输入您的名字(不超过20个字符):");
    scanf("%19s", name);  // 输入一个字符串,最多19个字符
    printf("您的名字是:%s
", name);
    return 0;
}

上記のコードの修飾子「s」は、オーバーフローを防ぐために最大 19 文字を入力できることを意味します。配列の添字は 0 から始まるため、「s」の長さは 20 ではなく 19 になることに注意してください。

結論:
scanf 関数を正しく使用するには、戻り値とバッファーの問題、フォーマット文字列の問題、および入力制限の問題に注意する必要があります。実際のプログラミングでは、これらのガイドラインに従い、必要に応じて適切な修正を行うよう注意してください。 scanf 関数を正しく使用することによってのみ、高品質で堅牢な C 言語プログラムをより適切に作成できます。

以上、C言語のscanf関数の正しい使い方をご紹介しましたので、ご参考になれば幸いです。読んでくれてありがとう!

以上がC言語のscanf関数の正しい使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。