|
Глава 4 - Использование функции printf( ) |
Страница 7 из 12
Приведем программу, иллюстрирующую обсуждаемые вопросы /* печать чепухи*/ Результат выглядит так: 5 женщин выпили 13,50000 стаканов ликера. Формат, указываемый при обращении к функции printf( ), выглядит следующим образом: рrintf(Управляющая строка, аргумент1, аргумент2, ...,); Аргумент1, Аргумент2 и т. д. - это печатаемые параметры которые могут быть переменными, константами или даже выражениями, вычисляемыми вначале, перед выводом на печать. printf(" %d женщин выпили %f стаканов ликера. \n" , number, ouzo); управляющей строкой служит фраза в кавычках (учитывая предыдущие замечания, это - строка символов), a number и ouzo - аргументы или в данном случае значения двух переменных.
Приведем еще пример. printf(" Значение числа pi равно %f.\n", PI); На этот раз список аргументов содержит только один элемент - символическую константу PI.
Каждому аргументу из списка, следующего за управляющей строкой, должна соответствовать одна спецификация преобразования. Горе вам, если вы забудете это основное требование. Никогда не пишите, например, так: printf(" Количество слизняков %d, червяков %d.\n", scorel); 3десь отсутствует аргумент для второй спецификации преобразования %d. Способ проявления этой ошибки целиком зависит от вашей вычислительной системы, но в лучшем случае вы получите бессмыслицу. Если вам нужно напечатать какую-нибудь фразу, то нет необходимости использовать спецификацию преобразования; если же требуется только вывести данные на печать, то можно обойтись и без использования комментария. Поэтому каждый из операторов, приведенных ниже, вполне приемлем. printf(" Прощай! Твое искусство слишком дорого для меня.\n"); Заметим, что во втором примере первый аргумент из печатаемого списка является символьной константой, а не переменной. Поскольку символ % используется в функции printf( ) для идентифицирования спецификаций преобразования, возникает небольшая проблема в том случае, если вам нужно напечатать сам символ %, Если просто написать один знак %, то компилятор примет его за ошибочную спецификацию преобразования. Выходом из создавшейся ситуации служит довольно простое решение - писать два символа % подряд: рс = 2*6; Результат работы программы будет выглядеть следующим образом: Только 12% стряпни Салли было съедобно.
|
|