Типы данных и форматированный вывод
C и C++ имеют общие фундаментальные числовые типы, но разные привычные механизмы форматирования.
Что такое Типы данных и форматированный вывод?
C и C++ имеют общие фундаментальные числовые типы, но разные привычные механизмы форматирования.
Объявляйте числа и безопасно выводите их.
Важные моменты
- Включайте предупреждения компилятора и исправляйте их.
- Знайте тип и lifetime каждого значения.
- Проверяйте ввод и границы массивов.
Примеры кода на 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 спецификатор должен совпадать с аргументом; stream C++ выбирает overload по типу, а iomanip задаёт точность.
C
C явно показывает небольшие процедурные API и представление данных.
C++
C++ сохраняет низкоуровневую модель и добавляет безопасные типы.
Практические задания
Запустите обе версии и изменяйте их, сравнивая гарантии языков.
- Добавьте неверные и граничные значения.
- Компилируйте с -Wall -Wextra -Wpedantic.
- Разделите объявления и реализацию.