Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Функция ( оператор ) printf в си | спецификаторы формата

   printf

Практически во всех примерах на си встречается функция printf. Вот и настала очередь все-таки понять как она работает. К сожалению, функция printf не может за нас сама определять какого типа данные нужно выводить. Т.е. мы сами должны указывать в функциe, какого типа данные должны быть выведены на экран. Давайте рассмотрим пример:

int i = 10;
float b = 12.5;
printf ("%d\n", i);
printf ("%f\n", b);

Но давайте не будем спешить, а разберем все по порядку.

   Спецификаторы формата

  1. Вывод целых чисел:
  2. Для вывода значений на экран нужно в функции написать правильный спецификатор формата. Для начала приведем все спецификаторы формата для целых чисел:

    спецификатор для чего
    %d для вывода целых чисел в десятичной форме
    %u для вывода целых чисел в десятичной форме без знака
    для вывода целых чисел без знака в восьмеричной форме
    для вывода целых чисел без знака в шестнадцатеричном формате

    int a = 16;
    printf ("%d %o %x",a,a,a); // Вывод на экран: 16 10 20

    Т.е. принцип этой функции заключается в следующем: в кавычках пишите нужные спецификаторы формата (ровно столько, сколько нужно вывести переменных); далее после кавычек ставите запятую и перечисляете, так же через запятую, все переменные для вывода в том порядке, в каком вы выставили спецификаторы формата.

  3. Вывод вещественных чисел:
  4. Спецификаторы формата для вещественных чисел:

    спецификатор для чего
    %f для вывода вещественных чисел в обычной форме
    %e для вывода вещественных чисел в экспоненциальной форме

    double a = 16;
    printf ("%f %e",a,a); // Вывод на экран: 16.000000 1.600000е+01

    Немного поясню вывод значения в экспоненциальной форме. Число 1.600000е+01 означает всего лишь 1.6 * 10^1

    Но с вещественными числами не все так просто. Вы заметили, что когда мы выводили на экран число 16, то почему-то добавилось 6 нулей. Так вот этот процесс можно контролировать:

    double a = 16;
    printf ("%.3f %.1e",a,a); // Вывод на экран: 16.000 1.6е+01

    Т.е. после написания знака (%) можно сразу же указать количество выводимых знаков вещественной составляющей числа. Эта вещь очень полезна и так же вы ею часто будете пользоваться

Ничего не забыли? -...
Ой, а что это за '\n' в первом примере спросите вы. Так вот это управляющие последовательности. Щас приведу набор этих штучек:

  1. '\n'      перевод на новую строку
  2. '\t'      табуляция
  3. '\a'      сигнал
  4. '\r'      курсор в начало строки возвращается
  5. '\''      вывод одиночной кавычки
  6. '\"'      вывод двойной кавычки
  7. '\\'      вывод косой черты

Задания:

  1. Дано число 6. Вывести предложение: "В доме №6, где гуляло 6 детей, 6 человек выпивают 6-ую банку пива"
  2. Дано вещественное число 6.09. Вывести его сначала с 1 нулем в вещественной части, затем с двумя, ..., и под конец с семью нулями. Числа разделять знаком табуляции
  3. Дано число 0. Вывести в столбик инкрементацию этого числа

Предвидущие уроки:

  1. Переменные
  2. Арифметические операции

Следующие уроки:

  1. Функция scanf и операции сравнения
  2. Первая программа на языке си ( с )
При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru