Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のprintf()とscanf()が返す戻り値とは?具体例付きで解説

C言語において、画面への出力にはprintf()関数、キーボードからの入力にはscanf()関数を使用します。これらはどちらも標準ライブラリ関数であり、stdio.hヘッダーファイル内で定義されています。

本記事では、それぞれの関数が返す戻り値の意味と挙動を、サンプルコードと実行結果をもとに詳しく解説します。

printf()関数の戻り値

printf()関数は、フォーマットされたデータを標準出力に表示するために使われます。戻り値としては、実際に出力された文字数を返します。何らかのエラーが発生した場合には、負の値を返します。

以下のプログラムで、その動作を確認してみましょう。

サンプルコード

#include <stdio.h>

int main(){
    char str[] = "THE SKY IS BLUE";

    printf("\nThe value returned by printf() for the above string is : %d", printf("%s", str));

    return 0;
}

実行結果

THE SKY IS BLUE
The value returned by printf() for the above string is : 15

プログラムの解説

まず、文字列"THE SKY IS BLUE"を配列strとして初期化します。次に、printf()を使って文字列を表示すると同時に、その戻り値も別のprintf()で出力しています。該当するコードは以下の部分です。

char str[] = "THE SKY IS BLUE";

printf("\nThe value returned by printf() for the above string is : %d", printf("%s", str));

"THE SKY IS BLUE"は空白を含めて15文字あるため、内側のprintf()は15を返し、それが%dで表示されるという仕組みです。

scanf()関数の戻り値

scanf()関数は、ユーザーからの入力を読み取るために使われます。戻り値としては、正常に読み取られた入力項目の数を返します。入力の失敗やエラーが発生した場合には、EOF(end-of-file)を返します。

こちらも、以下のプログラムで動作を確認してみましょう。

サンプルコード

#include <stdio.h>

int main(){
    int x, y, z;

    printf("The value returned by the scanf() function is : %d",
    scanf("%d%d%d", &x, &y, &z));

    printf("\nx = %d", x);
    printf("\ny = %d", y);
    printf("\nz = %d", z);

    return 0;
}

実行結果

7 5 4
The value returned by the scanf() function is : 3
x = 7
y = 5
z = 4

プログラムの解説

このプログラムでは、int型の変数x、y、zの3つを宣言しています。ユーザーがscanf()関数を使って値を入力すると同時に、scanf()の戻り値が出力されます。該当するコードは以下の部分です。

int x, y, z;

printf("The value returned by the scanf() function is : %d",
scanf("%d%d%d", &x, &y, &z));

ここで「7 5 4」という3つの整数を入力すると、3つの項目すべてが正常に読み取られたため、戻り値として3が返されます。

その後、ユーザーから取得したx、y、zの各値を出力しています。該当するコードは以下の通りです。

printf("\nx = %d", x);
printf("\ny = %d", y);
printf("\nz = %d", z);

このように、戻り値をチェックすることで、入力が正しく行われたかどうかをプログラム側で判定できる点が、scanf()の戻り値を活用する大きなメリットです。

  1. Pythonの関数から複数の値を返す4つの方法【タプル・リスト・辞書・クラス】

    はじめに Pythonでは、関数から複数の値をまとめて返すことが標準機能として簡単に行えます。具体的には、タプル、リスト、辞書(dict)、そしてユーザー定義クラスのオブジェクトという4つの形式が利用できます。 それぞれの方法を、実際のコード例とともに順番に見ていきましょう。 方法1:タプルとして返す(最も一般的) Pythonで最もよく使われるのがこの方法です。return a, bのようにカンマで区切って値を並べると、自動的にタプルとしてまとめて返されます。受け取る側ではアンパックを使って、個別の変数へ直接代入することも可能です。 >>> def function():

  2. ExcelのVLOOKUP関数で複数の値を返す8つの方法【関数・フィルター活用】

    別のワークシートや同じシート内から値を取り出したいとき、真っ先に思い浮かぶのがExcelのVLOOKUP関数ではないでしょうか。しかし、VLOOKUP関数には大きな弱点があります。それは一度に返せる値が1つだけという点です。この関数を使って複数の値を検索・抽出するには、ひと工夫が必要になります。本記事では、その具体的な方法を順を追って解説します。 また、INDEX、SMALL、MATCH、ROW、COLUMNSなどの他のExcel関数を組み合わせれば、複数の値を柔軟に抽出できます。さらに、詳細フィルター(Advanced Filter)、オートフィルター、テーブルとして書式設定といったExce