Cのprintfおよびscanf関数とは

面接の質問
  • C の printf() 関数とは
  • C の scanf() 関数とは

C の printf() 関数とは

関数 int printf(const char *format, ...); フォーマットされた文字列を stdout (標準出力デバイス) に書き込みます。 format に書式指定子 (% で始まるサブシーケンス) が含まれている場合、format に続く追加の引数は、それぞれの書式指定子を置き換えることによって、結果の文字列の書式設定後に挿入されます。
printf:

int printf(const char *format, ...);
の関数プロトタイプ フォーマット :これは、標準出力に書き込まれるテキストを含むヌル終了文字列です。埋め込みの書式指定子が含まれている場合があります。
追加の引数 :これらの引数は、出力文字列の書式指定子の値を置き換えます。
#include <stdio.h>

int main(){

    printf("Printing characters");
    printf("%c %c %c %c\n\n", 'a', 'A', '#', '1');
    
    printf("Printing integers");
    printf("%d %ld %10d %010d\n\n", 2015, 2015L, 2015, 2015);
    
    printf("Printing floating point numbers");
    printf("%f %5.2f %+.0e %E\n\n", 1.41412, 1.41412, 1.41412, 1.41412);
    
    printf("Printing string");
    printf("%s\n\n", "TechCrashCourse");
    
    return 0;
}

出力
Printing characters
a A # 1
Printing integers
2015 2015       2015 0000002015
Printing floating point numbers
1.414120  1.41 +1e+000 1.414120E+000
Printing string
TechCrashCourse

C の scanf() 関数とは

関数 int scanf(const char *format, ...); フォーマットされたデータを stdin (標準入力デバイス) から読み取り、追加の引数が指す変数に格納します。追加の引数は、形式で指定されたものと同じ型の変数を指す必要があります。

scanf の関数プロトタイプ

int scanf(const char *format, ...);
フォーマット :これは、空白文字、非空白文字、および書式指定子を含むヌル終了文字列です。
追加の引数 :フォーマット文字列に従って、関数は追加の引数のシーケンスを期待する場合があります。各引数には、stdin から読み取られたデータが格納される割り当てられたストレージへのポインターが含まれます。

scanf の戻り値
成功すると、scanf 関数は、正常に読み取られたオブジェクトの総数を返します。これは、フォーマット文字列で指定された項目の期待数と同じである場合と異なる場合があります。
#include <stdio.h>

int main(){
    int a, b, sum;
    printf("Enter to integers to add\n");
    /* Taking input from user using scanf */
    scanf("%d %d", &a, &b);
    sum = a + b;
    
    printf("%d + %d = %d", a, b, sum);

    return 0;
}

出力
Enter to integers to add
3 9
3 + 9 = 12