Linux программирование в примерах
Шрифт:
Буфер для форматированной строки.
Размер буфера.
Форматирующая строка.
Указатель на
Форматирующая строка содержит символы букв, смешанные о описателями преобразования, указывающими, что должно быть помещено в строку, такими, как полное имя дня недели, час в соответствии с 24-часовым или 12-часовым циклом, наличие указателей am или p.m [64] ,
64
a.m. — от ante meridiem (до полудня), p.m. — от post meridiem (пополудни), американская система обозначения 12-часового цикла времени суток. — Примеч. перев.
Если всю строку можно отформатировать с использованием не более
После запуска эта программа выводит что-то типа:
В табл. 6.2 предоставлен полный список описателей преобразования, их возможные альтернативные представления и их значения. Вдобавок стандарт C99 добавил к списку дополнительные описатели; новые для C99 описатели помечены символом .
Таблица 6.2. Описатели преобразования формата
Описатель | C99 | Значение |
---|---|---|
%a | Локальное сокращенное название дня недели. | |
%A | Локальное полное название дня недели. | |
%b | Локальное сокращенное название месяца. | |
%B | Локальное полное название месяца. | |
%c, %Ec | Локальное «подходящее» представление даты и времени | |
%C, %EC | Век (00–99) | |
%d, %Od | День месяца (01–31) | |
%D | То же, что %m/%d/%y | |
%e, %Oe | День месяца. Одна цифра дополняется пробелом (1–31). | |
%F | То же, что и %Y-%m-%d (формат даты ISO 8601) | |
%g | Две последние цифры, основанной на неделе года (00–99). | |
%G | Основанный на неделе год ISO 8601 | |
%h | То же, что и %b | |
%H, %OH | Час в 24-часовом цикле (00–23) | |
%I, %OI | Час в 12-часовом цикле (01–12) | |
%j | День года (001–366) | |
%m, %Om | Месяц в виде числа (01–12). | |
%M, %OM | Минута в виде числа (00–59) | |
%n | Символ конца строки (' \n ') | |
%p | Локальное обозначение a.m./p.m. | |
%r | Локальное время в 12-часовом цикле | |
%R | Тоже, что и %H:%M | |
%S, %OS | Секунда в виде числа (00–60) | |
%t | Символ табуляции (' \t ') | |
%T | То же, что и %H:%M:%S (формат ISO 8601). | |
%u, %Ou | Число дня недели ISO 8601, понедельник = 1 (1–7). | |
%U, %OU | Номер недели, первое воскресенье является первым днем недели 1 (00–53) | |
%V, %OV | Номер недели ISO 8601 (01–53) | |
%w, %Ow | День недели как число, воскресенье = 0 (0–6). | |
%W, %OW | Номер недели, первый понедельник является первым днем недели 1 (00–53) | |
%x, %Ex | Локальное «подходящее» представление даты | |
%X, %EX | Локальное «подходящее» представление времени. | |
%y, %Ey, %Oy | Две последние цифры года (00–99) | |
%Y, %EY | Год как число. | |
%Z | Локальный часовой пояс или отсутствие символов, если сведения о часовом поясе недоступны | |
%% | Простой % |
Локаль (locale) является способом описания местной специфики, принимая во внимание такие вещи, как язык, кодировка символов и значения по умолчанию для форматирования дат, времени, денежных сумм и т.д. Мы будем иметь с ними дело в главе 13 «Интернационализация и локализация». Пока достаточно понять, что результаты