C/C++の基礎

データ型と書式付き出力

CとC++は基本数値型を共有しますが、一般的なformat手法は異なります。

データ型と書式付き出力とは?

CとC++は基本数値型を共有しますが、一般的なformat手法は異なります。

整数と小数を宣言して安全に表示します。

重要なポイント

  • compiler warningを有効にしてすべて修正します。
  • 各値の型とlifetimeを把握します。
  • 入力と配列の境界を検証します。

CとC++のコード例

C
実行 →
main.c
#include <stdio.h>

int main(void) {
    int items = 7;
    double price = 3.5;
    printf("items=%d total=%.2f\n", items, items * price);
    return 0;
}
期待される出力
items=7 total=24.50
C++
実行 →
main.cpp
#include <iomanip>
#include <iostream>

int main() {
    int items = 7;
    double price = 3.5;
    std::cout << "items=" << items << " total="
              << std::fixed << std::setprecision(2) << items * price << '\n';
}
期待される出力
items=7 total=24.50

CとC++の比較

printfでは指定子と引数を一致させます。C++ streamは型からoverloadを選び、iomanipでprecisionを制御します。

C

Cは小さな手続き型APIと表現の詳細を明示します。

C++

C++は低レベルモデルを保ちつつ安全な型を追加します。

練習課題

両方を実行して変更し、言語ごとの保証を確認します。

  • 不正入力と境界値を追加します。
  • -Wall -Wextra -Wpedanticでコンパイルします。
  • 宣言と実装を分割します。