Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТТП (методичка).doc
Скачиваний:
3
Добавлен:
10.11.2018
Размер:
2.24 Mб
Скачать
    1. Последовательности для вывода специальных символов

Кроме \n, существуют и другие последовательности для вывода специальных символов на экран, наиболее часто используемые:

\t — вывод горизонтальной табуляции;

\r — возврат каретки (в начало текущей строки);

\\ — вывод одного обратного слеша «\»;

\" — вывод двойной кавычки.

    1. Спецификация вывода

Как видно из рассмотренного выше примера, спецификации (правила форматирования значений при выводе) помещаются внутри выводимой строки. Вслед за этой строкой должны стоять нуль (если спецификаций не указано) или более переменных или выражений, разделенных запятыми. Каждой спецификации в операторе printf должна соответствовать переменная соответствующего типа. Если используется несколько спецификаций, то всем им должны соответствовать переменные того типа, который задается спецификацией.

Более формально полную спецификацию вывода можно определить следующим образом (поля в квадратных скобочках — необязательные):

%[флаги][ширина][.точность][l]символ_формата

где l — используется для указания целых длинных типов, а ширина — минимальный размер поля вывода.

Значения флагов:

- выравнивание по левому краю

+ вывести знак значения – как плюс, так и минус

пусто для неотрицательных значений

вместо знака плюс вывести пробелы.

Точность: для целых — число цифр, для вещественных — число цифр после десятичной точки, для строк — число символов.

Символы формата:

с тип char

s строка

d тип int

o тип int в восьмеричном виде

u unsigned int (unsigned — беззнаковый)

X тип int в шестнадцатеричном виде

ld тип long

lo тип long в восьмеричном виде

lu unsigned long

lx тип long в шестнадцатеричном виде

f типы float и double

в виде с фиксированной точкой

e типы float и double в экспоненциальном виде

g типы float и double

в наиболее коротком виде из f или e.

Таблица 3 — Простейшие спецификации ввода-вывода для основных типов данных языка Си

Тип

Спецификация

int

%d

unsigned

%u

long

%ld

unsigned long

%lu

float

%f

double (вывод)

%f

double (ввод)

%lf

Внимание!

Частая ошибка — отсутствие соответствующей переменной для каждой спецификации в строке printf. Другая частая ошибка — несоответствие типа переменной спецификации. Обычно это происходит тогда, когда в строке много спецификаций и программист путает порядок переменных.

Листинг 3 — Пример использования оператора printf

/* printf.c – пример использования оператора printf. */

#include <stdio.h>

#include <conio.h>

#define sqr(x) ((x) * (x))

#define pi 3.14159265

void main()

{

float x = 2.5;

int i = 11;

int j = 119;

clrscr();

printf(“\nЗначение квадрата 2.5 = %10.4f”, sqr(x));

printf(“\nЧисло пи = %10.4f”, pi);

printf(“\nЗначение 2 * пи = %10.4f”, 2.0 * pi);

printf(“\n\nШестнадцатеричный вид числа 11 = %x”, i);

printf(“\nШестнадцатеричный вид числа 119 = %x”, j);

printf(“\nВосьмеричный вид числа 119 = %o\n”, j);

}

Рисунок 19 — Результат выполнения программы printf.c