printf

printf(3)                      2007-10-27-16:31                      printf(3)



Ðазва
       printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf,
       vsnprintf - ÑÑнкÑÑÑ ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ


ÐглÑд
       #include <stdio.h>

       int printf(const char *format, ...);


       int fprintf(FILE *stream, const char *format, ...);


       int sprintf(char *str, const char *format, ...);


       int snprintf(char *str, size_t size, const char *format, ...);

       #include <stdarg.h>

       int vprintf(const char *format, va_list ap);


       int vfprintf(FILE *stream, const char *format, va_list ap);


       int vsprintf(char *str, const char *format, va_list ap);


       int vsnprintf(char *str, size_t size, const char *format, va_list ap);


ÐпиÑ
       ФÑнкÑÑÑ Ð· ÑÑмейÑÑва printf ÑÑвоÑÑÑÑÑ Ð²Ð¸Ð²Ñд
       вÑдповÑдно ÑоÑмаÑÑ, опиÑаного нижÑе. ФÑнкÑÑÑ
       printf Ñ vprintf пиÑÑÑÑ ÑвÑй вивÑд до stdout,
       ÑÑандаÑÑного поÑÐ¾ÐºÑ Ð²Ð¸Ð²Ð¾Ð´Ñ; fprintf Ñ vfprintf
       пиÑÑÑÑ ÑвÑй вивÑд до заданого Ñм поÑокÑ
       виводÑ; sprintf, snprintf, vsprintf Ñ vsnprintf пиÑÑÑÑ Ð´Ð¾
       ÑимволÑного ланÑÑжка str.

       ФÑнкÑÑÑ vprintf, vfprintf, vsprintf i vsnprintf
       еквÑваленÑÐ½Ñ ÑÑнкÑÑÑм printf, fprintf, sprintf Ñ snprintf,
       вÑдповÑдно, за винÑÑком Ñого, Ñо вони
       вживаÑÑÑÑÑ Ð· va_list замÑÑÑÑ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ ÐºÑлÑкоÑÑÑ
       аÑгÑменÑÑв. Ð¦Ñ ÑÑнкÑÑÑ Ð½Ðµ викликаÑÑÑ Ð¼Ð°ÐºÑоÑÑ
       va_end, Ñож знаÑÐµÐ½Ð½Ñ ap бÑде невизнаÑеним пÑÑлÑ
       викликÑ. ÐодаÑки Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ ÑÐ°Ð¼Ñ Ð¿Ð¾ÐºÐ»Ð¸ÐºÐ°Ñи
       va_end(ap) в кÑнÑÑ.

       Ð¦Ñ Ð²ÑÑÑм ÑÑнкÑÑй здÑйÑнÑÑÑÑ Ð²Ð¸Ð²Ñд вÑдповÑдно до
       ланÑÑжка ÑоÑмаÑÑваннÑ, Ñкий опиÑÑÑ Ñк Ñаме
       аÑгÑменÑи, Ñо ÑлÑдÑÑÑÑ Ð¾Ð´Ð¸Ð½ за одним (або
       аÑгÑменÑи, доÑÑÑÐ¿Ð½Ñ Ð·Ð°Ð²Ð´Ñки заÑобам обÑобки
       змÑÐ½Ð½Ð¾Ñ ÐºÑлÑкоÑÑÑ Ð°ÑгÑменÑÑв stdarg(3))
       пеÑеÑвоÑено Ð´Ð»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ.


    ÐовеÑÐ½ÐµÐ½Ñ Ð·Ð½Ð°ÑеннÑ
       У Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð²Ð´Ð°Ð»Ð¾Ð³Ð¾ виконаннÑ, ÑÑ ÑÑнкÑÑÑ
       повеÑÑаÑÑÑ ÐºÑлÑкÑÑÑÑ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÐºÑв
       (виклÑÑаÑÑи завеÑÑалÑний '\0',
       викоÑиÑÑовÑваний Ð´Ð»Ñ Ð·Ð°ÐºÑнÑÐµÐ½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ
       ланÑÑжкÑв). ФÑнкÑÑÑ snprintf Ñ vsnprintf не запиÑÑÑÑÑ
       бÑлÑÑе нÑж size байÑÑв (завеÑÑалÑний '\0',
       вклÑÑно). ЯкÑо вивÑд ÑÑÑзано, завдÑки ÑÑомÑ
       обмеженнÑ, ÑÐ¾Ð´Ñ Ð¿Ð¾Ð²ÐµÑненим знаÑеннÑм бÑде
       ÑиÑло знакÑв (без кÑнÑевого '\0'), Ñке бÑло би
       виведено Ñк оÑÑаÑоÑний ланÑÑжок, Ñкби бÑло
       би доÑÑаÑнÑо мÑÑÑÑ. Таким Ñином, повеÑнене
       знаÑеннÑ, ÑÑвне size або бÑлÑÑе, ознаÑаÑ, Ñо
       вивÑд ÑÑÑзано. (ÐодивÑÑÑÑÑ Ñакож коменÑÐ°Ñ Ñ
       ÐÐ ÐÐÐТÐÐÐ¥.) ЯкÑо вÑдбÑлаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° виводÑ,
       повеÑÑаÑÑÑÑÑ Ð²Ñд'Ñмне знаÑеннÑ.


    ФоÑÐ¼Ð°Ñ ÑоÑмаÑÑвалÑного ланÑÑжка
       ФоÑмаÑÑвалÑний ланÑÑжок вÑдповÑÐ´Ð°Ñ Ð·Ð°
       зовнÑÑнÑй виглÑд виводÑ. ÐÑн ÑкладаÑÑÑÑÑ Ð·
       нÑÐ»Ñ Ð°Ð±Ð¾ бÑлÑÑе диÑекÑив: звиÑÐ°Ð¹Ð½Ð¸Ñ Ð·Ð½Ð°ÐºÑв
       (без %), ÑÐºÑ ÐºÐ¾Ð¿Ñйовано без змÑн до
       вивÑдного поÑÐ¾ÐºÑ Ñ Ð¾Ð¿Ð¸ÑÑваÑÑ Ð¿ÐµÑеÑвоÑеннÑ,
       ÐºÐ¾Ð¶Ð½Ð¾Ð¼Ñ Ð· ÑÐºÐ¸Ñ Ð²ÑдповÑÐ´Ð°Ñ Ð¾Ð´Ð¸Ð½ аÑгÑменÑ
       пÑзнÑÑе. Ðожен опиÑÑÐ²Ð°Ñ Ð¿ÐµÑеÑвоÑеннÑ
       поÑинаÑÑÑÑÑ Ð·Ñ Ð·Ð½Ð°ÐºÑ % Ñ Ð·Ð°ÐºÑнÑÑÑÑÑÑÑ
       лÑÑеÑоÑ-вказÑвником пеÑеÑвоÑеннÑ, мÑж Ñкими
       можÑÑÑ Ð·Ð½Ð°ÑодиÑиÑÑ (Ñ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ñй
       поÑлÑдовноÑÑÑ) нÑÐ»Ñ Ð°Ð±Ð¾ бÑлÑÑе пÑапоÑÑÑв,
       необов'Ñзковий вказÑвник ÑиÑини полÑ,
       необов'Ñзковий вказÑвник ÑоÑноÑÑÑ Ñ
       довжини.

       ÐимагаÑÑÑÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð° вÑдповÑднÑÑÑÑ Ð¼Ñж
       аÑгÑменÑами (пÑÑÐ»Ñ Ð¿ÐµÑÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ ÑипÑ) й
       опÑÑÑваÑами пеÑеÑвоÑеннÑ. Типово, аÑгÑменÑи
       викоÑиÑÑовÑÑÑÑÑÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð¼Ñ Ð¿Ð¾ÑÑдкÑ, де `*' Ñ
       ÐºÐ¾Ð¶Ð½Ð¾Ð¼Ñ Ð¾Ð¿Ð¸ÑÑваÑÑ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸ÑÑÑ
       наÑÑÑпний аÑгÑÐ¼ÐµÐ½Ñ (Ñ Ð²ÑдбÑдеÑÑÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°,
       ÑкÑо вказано недоÑÑаÑнÑо аÑгÑменÑÑв). Ðи
       можеÑе Ñакож Ñвно вказаÑи, Ñкий аÑгÑменÑ
       взÑÑи Ñам де вимагаÑÑÑÑÑ Ð°ÑгÑменÑ, запиÑом
       `%m$' замÑÑÑÑ `%' Ñ `*m$' замÑÑÑÑ `*', де деÑÑÑкове
       ÑÑле m ознаÑÐ°Ñ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ аÑгÑменÑÑ
       Ñ ÑпиÑÐºÑ Ð°ÑгÑменÑÑв; ÑндекÑаÑÑÑ Ð¿Ð¾ÑинаÑÑÑÑÑ Ð· 1.
       Таким Ñином,

                   printf("%*d", width, num);

       Ñ

                   printf("%2$*1$d", width, num);

       ÑвлÑÑÑÑÑÑ ÐµÐºÐ²ÑваленÑними. ÐÑÑгий ÑÑÐ¸Ð»Ñ Ð½Ð¾ÑаÑÑÑ
       дозволÑÑ Ð¿Ð¾Ð²ÑоÑÐ½Ñ Ð·Ð²ÐµÑÐ½ÐµÐ½Ð½Ñ Ð´Ð¾ Ñого Ñамого
       аÑгÑменÑÑ. СÑандаÑÑ C99 не вклÑÑÐ°Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑаннÑ
       `$', Ñке бÑло пÑивнеÑено з ÐÐ´Ð¸Ð½Ð¾Ñ Ð¡Ð¿ÐµÑиÑÑкаÑÑÑ
       ЮнÑкÑа. ЯкÑо викоÑиÑÑовÑÑÑÑÑÑ ÑÑÐ¸Ð»Ñ Ð· `$', його
       необÑÑдно вживаÑи ÑкÑÑÐ·Ñ Ð´Ð»Ñ Ð²ÑÑÑ Ð¿ÐµÑеÑвоÑенÑ
       з аÑгÑменÑом Ñак Ñамо, Ñк ÑÑÑÑ Ð²ÐºÐ°Ð·ÑвникÑв
       ÑиÑини Ñ ÑоÑноÑÑÑ, але його можна
       пеÑемежовÑваÑи з ÑоÑмаÑом `%%', Ñкий не беÑе
       Ð¶Ð¾Ð´Ð½Ð¸Ñ Ð°ÑгÑменÑÑв. Ðе може бÑÑи пÑомÑжкÑв Ñ
       кÑлÑкоÑÑÑ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð°ÑгÑменÑÑв, викоÑиÑÑовÑÑÑи
       `$'; напÑиклад, ÑкÑо вказано аÑгÑÐ¼ÐµÐ½Ñ 1 Ñ 3,
       необÑÑдно Ñакож деÑÑ Ñ Ð»Ð°Ð½ÑÑÐ¶ÐºÑ Ð²ÐºÐ°Ð·Ð°Ñи й
       аÑгÑÐ¼ÐµÐ½Ñ 2.

       ÐÐ»Ñ Ð´ÐµÑÐºÐ¸Ñ ÑиÑÐ»Ð¾Ð²Ð¸Ñ Ð¿ÐµÑеÑвоÑенÑ
       викоÑиÑÑовÑÑÑÑÑÑ Ð´ÐµÑÑÑковий знак або знак
       ÑгÑÑповÑÐ²Ð°Ð½Ð½Ñ ÑиÑÑÑ. Ð¦Ñ Ð·Ð½Ð°ÐºÐ¸ залежаÑÑ Ð²Ñд
       вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ñ Ð»Ð¾ÐºÐ°Ð»Ñ Ð´Ð»Ñ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ ÑеÑедовиÑа
       LC_NUMERIC. ÐÐ¾ÐºÐ°Ð»Ñ POSIX викоÑиÑÑовÑÑ ÐºÑÐ°Ð¿ÐºÑ `.' Ñк
       деÑÑÑковий знак Ñ Ð½Ðµ Ð¼Ð°Ñ ÑоздÑлÑваÑа ÑиÑÑÑ.
       Таки Ñином,

                   printf("%'.2f", 1234567.89);

       видаÑÑÑ `1234567.89' Ñ Ð»Ð¾ÐºÐ°Ð»Ñ POSIX, `1234567,89' Ñ
       Ð»Ð¾ÐºÐ°Ð»Ñ nl_NL Ñ `1.234.567,89' Ñ da_DK.


    ÐÑапоÑÑÑ
       Ðа знаком % можÑÑÑ ÑлÑдÑваÑи нÑÐ»Ñ Ð°Ð±Ð¾ бÑлÑÑе
       наÑÑÑÐ¿Ð½Ð¸Ñ Ð¿ÑапоÑÑÑв:


       #
               ÐнаÑÐµÐ½Ð½Ñ Ð¿Ð¾ÑÑÑбно обеÑнÑÑи Ñ
              "алÑÑеÑнаÑÐ¸Ð²Ð½Ñ ÑоÑмÑ". У випадкÑ
              o-пеÑеÑвоÑенÑ, пеÑÑим знаком ланÑÑжка
              Ð²Ð¸Ð²Ð¾Ð´Ñ Ð±Ñде нÑÐ»Ñ (додаÑÑи 0, ÑкÑо Ñам
              його Ñе немаÑ). ÐÐ»Ñ x Ñ X-пеÑеÑвоÑенÑ,
              ланÑÑжок бÑде поÑинаÑиÑÑ Ð· `0x' (або `0X'
              Ð´Ð»Ñ X-пеÑеÑвоÑенÑ). ÐÐ»Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ñ a, A, e, E,
              f, F, g й G ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ мÑÑÑиÑиме
              деÑÑÑÐºÐ¾Ð²Ñ ÐºÑапкÑ, навÑÑÑ ÑкÑо за Ð½ÐµÑ Ð½Ðµ
              ÑлÑдÑÑ Ð¶Ð¾Ð´Ð½Ð¸Ñ ÑиÑÑ (за звиÑайниÑ
              обÑÑавин, деÑÑÑкова кÑапка з'ÑвлÑÑÑÑÑÑ Ð²
              ÑÐ¸Ñ Ð¿ÐµÑеÑвоÑеннÑÑ ÑÑлÑки, ÑкÑо пÑиÑÑÑнÑ
              деÑÑÑÐºÐ¾Ð²Ñ ÑиÑла). ÐÐ»Ñ \fg\fP Ñ G-пеÑеÑвоÑенÑ,
              ÑвоÑÑÐ¾Ð²Ñ Ð½ÑÐ»Ñ Ð½Ðµ вилÑÑаÑÑÑÑÑ Ð· ÑезÑлÑÑаÑÑ, Ñк
              Ñе ÑобиÑÑÑÑ Ð·Ð²Ð¸Ñайно. ÐÐ»Ñ ÑеÑÑи пеÑеÑвоÑенÑ
              ÑезÑлÑÑÐ°Ñ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñено.


       0
               ÐнаÑÐµÐ½Ð½Ñ Ð¿Ð¾ÑÑÑбно заповниÑи нÑлÑми. ÐлÑ
              пеÑеÑвоÑÐµÐ½Ñ d, i, o, u, x, X, a, A, e, E, f, F, g й G,
              вивÑд заповнÑÑÑÑÑÑ Ð½ÑлÑми, а не
              пÑобÑлами, з лÑÐ²Ð¾Ñ ÑÑоÑони. ЯкÑо з'ÑвлÑÑÑÑÑ
              обидва знаки, 0 й -, ÑÐ¾Ð´Ñ 0 ÑгноÑÑÑÑÑÑÑ.
              ЯкÑо задано вказÑвник ÑоÑноÑÑÑ
              ÑиÑÐ»Ð¾Ð²Ð¾Ð¼Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ d, i, o, u, x або X,
              пÑапоÑеÑÑ 0 бÑде ÑгноÑовано. ÐÐ»Ñ ÑеÑÑи
              пеÑеÑвоÑенÑ, Ð¿Ð¾Ð²Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ Ñ
              визнаÑеним.


       -
               ÐеÑеÑвоÑене знаÑÐµÐ½Ð½Ñ Ð²Ð¸ÑÑвнÑваÑимеÑÑÑÑ
              лÑвоÑÑÑ Ñ Ð¼ÐµÐ¶Ð°Ñ Ð¿Ð¾Ð»Ñ. (СÑандаÑÑним Ñ
              виÑÑвнÑÐ²Ð°Ð½Ð½Ñ Ð¿ÑавоÑÑÑ.) Ðа винÑÑком
              n-пеÑеÑвоÑенÑ, знаÑÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÑваÑимÑÑÑÑÑ
              пÑобÑлами з пÑÐ°Ð²Ð¾Ñ ÑÑоÑони, замÑÑÑÑ
              пÑобÑлÑв або нÑлÑв злÑва, Ñк звиÑайно. A
              пеÑеважиÑÑ 0, ÑкÑо обидва задано.


       . .
               (пÑобÑл) ÐобавиÑÑ Ð¿ÑобÑл пеÑед додаÑнÑм
              ÑиÑлом (або поÑожнÑм ланÑÑжком) Ñ
              Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ Ð·Ñ Ð·Ð½Ð°ÐºÐ¾Ð¼.


       +
               Ðнак (+ або -) завжди добавлÑÑимеÑÑÑÑ
              попеÑÐµÐ´Ñ ÑиÑла Ñ Ð¿ÐµÑеÑвоÑеннÑÑ Ð·Ñ
              знаком. СÑандаÑÑно, знак
              викоÑиÑÑовÑÑÑÑÑÑ ÑÑлÑки з вÑд'Ñмними
              ÑиÑлами. ÐÑапоÑеÑÑ + пеÑеважиÑÑ Ð¿ÑобÑл,
              ÑкÑо обидва задано.

              Ð'ÑÑÑ Ð²Ð¸ÑÐµÐ½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿ÑапоÑÑÑв визнаÑено
              ÑÑандаÑÑом C. SUSv2 зазнаÑено Ñе один
              пÑапоÑеÑÑ:


       ,
               У Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð´ÐµÑÑÑÐºÐ¾Ð²Ð¸Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ñ i, d, u,
              f, F, g, або G, вивÑд подÑлÑÑимеÑÑÑÑ Ð½Ð° ÑиÑÑÑÑ
              знаком подÑлÑ, ÑкÑо Ð»Ð¾ÐºÐ°Ð»Ñ Ð²ÐºÐ»ÑÑаÑ
              Ñакий. ÐайÑе на ÑвазÑ, Ñо багаÑо веÑÑÑÑ gcc
              не ÑозпÑзнаÑÑÑ ÑÑÑÑ Ð¾Ð¿ÑÑÑ Ñ Ð²Ð¸Ð´Ð°Ð´ÑÑÑ
              попеÑедженнÑ. SUSv2 не вклÑÑÐ°Ñ %'F.

              glibc 2.2 додало Ñе один знак пÑапоÑÑÑ: I У
              Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð´ÐµÑÑÑÐºÐ¾Ð²Ð¸Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ñ i, d, u,
              заÑÑоÑовÑваÑимÑÑÑÑÑ Ð°Ð»ÑÑеÑнаÑÐ¸Ð²Ð½Ñ ÑиÑла
              Ð²Ð¸Ð²Ð¾Ð´Ñ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ñ, ÑкÑо ÑÐ°ÐºÑ ÑÑнÑÑÑÑ.
              ÐапÑиклад, поÑинаÑÑи з glibc 2.2.3, Ñе
              надаÑÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²ÑÑÑÑ Ð²Ð¸Ð²Ð¾Ð´Ñ
              аÑабÑÑко-ÑндÑйÑÑÐºÐ¸Ñ ÑиÑÑ Ñ Ð¿ÐµÑÑÑкÑй (fa_IR)
              локалÑ.


    ШиÑина полÑ
       Ðеобов'Ñзковий ланÑÑжок з деÑÑÑковим
       ÑиÑлом (з ненÑлÑовим ÑиÑлом, Ñк пеÑÑа ÑиÑÑа)
       може вказÑваÑи мÑнÑмалÑÐ½Ñ ÑиÑÐ¸Ð½Ñ Ð¿Ð¾Ð»Ñ. ЯкÑо
       пеÑеÑвоÑене знаÑÐµÐ½Ð½Ñ Ð¼Ð°Ñ Ð¼ÐµÐ½Ñе знакÑв, нÑж
       ÑиÑина полÑ, ÑеÑÑÑ Ð±Ñде заповнено пÑобÑлами
       з лÑвого Ð±Ð¾ÐºÑ (або пÑавого, ÑкÑо задано
       пÑапоÑеÑÑ Ð²Ð¸ÑÑвнÑÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ). ÐамÑÑÑÑ
       ланÑÑжка з деÑÑÑковим ÑиÑлом, ви можеÑе
       Ñакож напиÑаÑи `*' або `*m$' (з ÑкимоÑÑ
       деÑÑÑковим ÑиÑлом m), Ñоб вказаÑи ÑиÑÐ¸Ð½Ñ Ð¿Ð¾Ð»Ñ
       Ð´Ð»Ñ Ð½Ð°ÑÑÑпного аÑгÑменÑÑ Ð°Ð±Ð¾ m-Ð½Ð¾Ð¼Ñ Ð°ÑгÑменÑÑ,
       вÑдповÑдно, Ñкий повинен бÑÑи ÑÐ¸Ð¿Ñ int. Ðожна
       вказÑваÑи Ñакож вÑд'Ñмне знаÑÐµÐ½Ð½Ñ Ð´Ð»Ñ
       ÑиÑини полÑ. Ð Ð¶Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑазÑ, вÑдÑÑÑнÑÑÑÑ ÑиÑини
       Ð¿Ð¾Ð»Ñ Ð°Ð±Ð¾ занадÑо мале знаÑÐµÐ½Ð½Ñ Ð½Ðµ
       ÑпÑиÑинÑÑÑ Ð¾Ð±ÑÑÐ·Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ; ÑкÑо ÑезÑлÑÑаÑ
       пеÑеÑвоÑÐµÐ½Ð½Ñ ÑиÑÑе нÑж вказана ÑиÑина полÑ,
       поле бÑде пÑодовжено, Ñоб ÑозмÑÑÑиÑи вивÑд.


    ТоÑнÑÑÑÑ
       Ðеобов'Ñзковий показник ÑоÑноÑÑÑ Ð¼Ð¾Ð¶Ðµ
       ÑкладаÑиÑÑ Ð· ÑоÑки (`.') з поÑлÑдÑÑÑим,
       можливим, ланÑÑжком з деÑÑÑкового ÑиÑла.
       ÐамÑÑÑÑ Ð´ÐµÑÑÑкового ÑиÑла ви можеÑе напиÑаÑи
       `*' або `*m$' (з ÑкимоÑÑ Ð´ÐµÑÑÑковим ÑиÑлом m), Ñоб
       вказаÑи ÑиÑÐ¸Ð½Ñ Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð½Ð°ÑÑÑпного аÑгÑменÑÑ
       або m-Ð½Ð¾Ð¼Ñ Ð°ÑгÑменÑÑ, вÑдповÑдно, Ñкий
       повинен бÑÑи ÑÐ¸Ð¿Ñ int. ЯкÑо ÑоÑнÑÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾
       ÑÑлÑки Ñк `.' або Ñе вÑд'Ñмне знаÑеннÑ, вона
       вважаÑимеÑÑÑÑ Ð½ÑлÑовоÑ. ÐказÑвник ÑоÑноÑÑÑ
       вказÑÑ Ð¼ÑнÑмалÑÐ½Ñ ÐºÑлÑкÑÑÑÑ ÑиÑел длÑ
       пеÑеÑвоÑÐµÐ½Ñ d, i, o, u, x Ñ X або кÑлÑкÑÑÑÑ ÑиÑел
       пÑÑÐ»Ñ Ð´ÐµÑÑÑкового Ð·Ð½Ð°ÐºÑ Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ a, A, e, E, f Ñ
       F-пеÑеÑвоÑенÑ, або ж макÑималÑне ÑиÑло
       ÑимволÑв, Ñо бÑде виведено, Ð´Ð»Ñ Ð»Ð°Ð½ÑÑжковиÑ
       пеÑеÑвоÑÐµÐ½Ñ s Ñ S.


    ÐодиÑÑкаÑÐ¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸
       ТÑÑ "пеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑлиÑ" ознаÑÐ°Ñ Ð²ÐºÐ°Ð·Ñвники d,
       i, o, u, x або X.


       hh
               ÐаÑÑÑпне пеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑÐ»Ð¸Ñ Ð²ÑдповÑдаÑ
              аÑгÑменÑовÑ, Ñо ÑвлÑÑ ÑÐ¾Ð±Ð¾Ñ ÑÑле Ð·Ñ Ð·Ð½Ð°ÐºÐ¾Ð¼
              або ÑÑле без знакÑ, або наÑÑÑпне
              n-пеÑеÑвоÑÐµÐ½Ð½Ñ Ð²ÑдповÑдаÑ
              аÑгÑменÑÑ-покажÑÐ¸ÐºÑ Ð½Ð° ÑÑле Ð·Ñ Ð·Ð½Ð°ÐºÐ¾Ð¼.


       h
               ÐаÑÑÑпне пеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑÐ»Ð¸Ñ Ð²ÑдповÑдаÑ
              коÑоÑÐºÐ¾Ð¼Ñ ÑÑÐ»Ð¾Ð¼Ñ Ð°Ð±Ð¾ беззнаковомÑ
              коÑоÑÐºÐ¾Ð¼Ñ ÑÑÐ»Ð¾Ð¼Ñ Ð°ÑгÑменÑовÑ, або або
              наÑÑÑпне n-пеÑеÑвоÑÐµÐ½Ð½Ñ Ð²ÑдповÑдаÑ
              аÑгÑменÑÑ-покажÑÐ¸ÐºÑ Ð½Ð° коÑоÑке ÑÑле.


       l
               (англÑйÑÑка "л") ÐаÑÑÑпне пеÑеÑвоÑеннÑ
              ÑÑÐ»Ð¸Ñ Ð²ÑдповÑÐ´Ð°Ñ Ð°ÑгÑменÑовÑ, Ñо ÑвлÑÑ
              ÑÐ¾Ð±Ð¾Ñ Ð´Ð¾Ð²Ð³Ðµ ÑÑле або беззнакове
              довге ÑÑле, або наÑÑÑпне
              \f\Bn\fP-пеÑеÑвоÑÐµÐ½Ð½Ñ Ð²ÑдповÑÐ´Ð°Ñ Ð¿Ð¾ÐºÐ°Ð¶ÑикÑ
              на довге ÑÑле, або наÑÑÑпне
              c-пеÑеÑвоÑÐµÐ½Ð½Ñ Ð²ÑдповÑÐ´Ð°Ñ Ð°ÑгÑменÑовÑ
              ÑÐ¸Ð¿Ñ wint_t, або наÑÑÑпне s-пеÑеÑвоÑеннÑ
              вÑдповÑÐ´Ð°Ñ Ð°ÑгÑменÑÐ¾Ð²Ñ ÑÐ¸Ð¿Ñ wchat_t.


       ll
               (Ð´Ð²Ñ Ð°Ð½Ð³Ð»ÑйÑÑÐºÑ "л") ÐаÑÑÑпне пеÑеÑвоÑеннÑ
              ÑÑÐ»Ð¸Ñ Ð²ÑдповÑÐ´Ð°Ñ Ð°ÑгÑменÑовÑ, Ñо ÑвлÑÑ
              ÑÐ¾Ð±Ð¾Ñ Ð´Ð¾Ð²Ð³Ðµ-довге ÑÑле або
              беззнакове довге-довге ÑÑле, або ж
              наÑÑÑпне n-пеÑеÑвоÑÐµÐ½Ð½Ñ Ð²ÑдповÑдаÑ
              аÑгÑменÑÑ-покажÑÐ¸ÐºÑ Ð½Ð° довге-довге
              ÑÑле.


       L
               ÐаÑÑÑÐ¿Ð½Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ a, A, e, E, f, F, g або G
              вÑдповÑдаÑÑÑ Ð°ÑгÑменÑовÑ, Ñо ÑвлÑÑ ÑобоÑ
              довге подвÑйне. (C99 допÑÑÐºÐ°Ñ %LF, ÑÐ¾Ð´Ñ Ñк
              SUSv2 - нÑ.)


       q
               ("quad". ТÑлÑки Ð´Ð»Ñ BSD 4.4 Ñ Linux libc5. Ðе
              викоÑиÑÑовÑйÑе його.) СинонÑм ll.


       j
               ÐеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑлого, Ñо вÑдповÑдаÑ
              аÑгÑменÑÐ¾Ð²Ñ ÑÐ¸Ð¿Ñ intmax_t або uintmax_t.


       z
               ÐеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑлого, Ñо вÑдповÑдаÑ
              аÑгÑменÑÐ¾Ð²Ñ ÑÐ¸Ð¿Ñ size_t або ssize_t. (У Linux libc5
              викоÑиÑÑовÑÑÑÑÑÑ Z Ð´Ð»Ñ ÑÑого. Ðе вживайÑе
              його.)


       t
               ÐеÑеÑвоÑÐµÐ½Ð½Ñ ÑÑлого, Ñо вÑдповÑдаÑ
              аÑгÑменÑÐ¾Ð²Ñ ÑÐ¸Ð¿Ñ ptrdiff_t.

              SUSv2 Ð·Ð½Ð°Ñ ÑÑлÑки пÑо модиÑÑкаÑоÑи
              довжини h (Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ°Ñ hd, hi, ho, hx, hX, hn),
              модиÑÑкаÑÐ¾Ñ l (Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ°Ñ ld, li, lo, lx, lX, ln,
              lc, ls) а Ñакож L (Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ°Ñ Le, LE, Lf, Lg, LG).


    ÐказÑвники пеÑеÑвоÑеннÑ
       ÐказÑвниками пеÑеÑвоÑÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð¸Ð²Ð°ÑÑÑÑÑ
       знаки, Ñо вказÑÑÑÑ Ð½Ð° Ñип заÑÑоÑовÑваного
       пеÑеÑвоÑеннÑ. ÐÑÑ ÑÑнÑй пеÑелÑк:


       d, i
               ÐÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ int пеÑеÑвоÑено до
              деÑÑÑкового запиÑÑ Ð·Ñ Ð·Ð½Ð°ÐºÐ¾Ð¼. ТоÑнÑÑÑÑ,
              ÑкÑо Ñака вказана, вказÑÑ Ð¼ÑнÑмалÑне
              ÑиÑло ÑиÑÑ, Ñо мÑÑиÑÑ Ð·'ÑвиÑиÑÑ; ÑкÑо
              пеÑеÑвоÑене знаÑÐµÐ½Ð½Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ Ð¼ÐµÐ½Ñе
              ÑиÑÑ, його заповнено з лÑÐ²Ð¾Ñ ÑÑоÑони
              нÑлÑми. СÑандаÑÑÐ½Ð¾Ñ ÑоÑнÑÑÑÑ Ñ 1. ÐÑи виводÑ
              знаÑÐµÐ½Ð½Ñ 0 Ð·Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ñ ÑоÑнÑÑÑÑ 0, нÑÑого
              не з'ÑвиÑÑÑÑ.


       o, u, x, X
               Ðеззнаковий аÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ int
              пеÑеÑвоÑено до Ð±ÐµÐ·Ð·Ð½Ð°ÐºÐ¾Ð²Ð¾Ñ Ð²ÑÑÑмковоÑ
              (o), Ð±ÐµÐ·Ð·Ð½Ð°ÐºÐ¾Ð²Ð¾Ñ Ð´ÐµÑÑÑÐºÐ¾Ð²Ð¾Ñ (u) або
              Ð±ÐµÐ·Ð·Ð½Ð°ÐºÐ¾Ð²Ð¾Ñ ÑÑÑÑнадÑÑÑÐºÐ¾Ð²Ð¾Ñ (x, X) ноÑаÑÑÑ.
              ÐÑÑеÑи "abcdef" викоÑиÑÑовÑÑÑÑÑÑ Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ x, а
              "ABCDEF" Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ X ÑÑÑÑнадÑÑÑкового
              пеÑеÑвоÑеннÑ. ТоÑнÑÑÑÑ, ÑкÑо задано,
              вказÑваÑиме мÑнÑмалÑÐ½Ñ ÐºÑлÑкÑÑÑÑ ÑиÑÑ, Ñо
              повинна з'ÑвиÑиÑÑ; ÑкÑо пеÑеÑвоÑене
              знаÑÐµÐ½Ð½Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñиме менÑе ÑиÑÑ, його
              бÑде заповнено нÑлÑми з лÑÐ²Ð¾Ñ ÑÑоÑони.
              СÑандаÑÑÐ½Ð¾Ñ ÑоÑнÑÑÑÑ Ñ 1. ÐÑи виводÑ
              знаÑÐµÐ½Ð½Ñ 0 Ð·Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ñ ÑоÑнÑÑÑÑ 0, нÑÑого
              не з'ÑвиÑÑÑÑ.


       e, E
               ÐÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð´Ð²Ñйного окÑÑглено Ñ
              виведено Ñ ÑÑÐ¸Ð»Ñ [-]d.dddedd, де бÑде одна
              ÑиÑÑа до деÑÑÑкового Ð·Ð½Ð°ÐºÑ Ñ ÐºÑлÑкÑÑÑÑ ÑиÑÑ
              пÑÑÐ»Ñ ÑÑвна вказÑÐ²Ð½Ð¸ÐºÐ¾Ð²Ñ ÑоÑноÑÑÑ; ÑкÑо
              вказÑвник ÑоÑноÑÑÑ Ð²ÑдÑÑÑнÑй,
              викоÑиÑÑовÑваÑимеÑÑÑÑ 6; ÑкÑо ÑоÑнÑÑÑÑ
              доÑÑвнÑÑ Ð½ÑлÑ, деÑÑÑковий знак не
              з'ÑвлÑÑимеÑÑÑÑ. ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð· E
              викоÑиÑÑовÑÑ Ð»ÑÑеÑÑ "E" (замÑÑÑÑ "e") длÑ
              пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ñ ÐµÐºÑпоненÑи. ÐкÑпоненÑ
              завжди мÑÑÑиÑиме ÑонайменÑе Ð´Ð²Ñ ÑиÑÑи;
              ÑкÑо знаÑÐµÐ½Ð½Ñ Ð´Ð¾ÑÑвнÑÑ Ð½ÑлÑ, екÑпоненÑ
              бÑде зобÑажено Ñк 00.


       f, F
               ÐÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð´Ð²Ñйного окÑÑглено Ñ
              пеÑеÑвоÑено Ñ Ð´ÐµÑÑÑкове пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ñ Ð²
              ÑÑÐ¸Ð»Ñ [-]ddd.ddd, де кÑлÑкÑÑÑÑ Ð·Ð½Ð°ÐºÑв пÑÑлÑ
              деÑÑÑкового Ð·Ð½Ð°ÐºÑ Ð´Ð¾ÑÑвнÑÑ
              вказÑÐ²Ð½Ð¸ÐºÐ¾Ð²Ñ ÑоÑноÑÑÑ. ЯкÑо показник
              ÑоÑноÑÑÑ Ð²ÑдÑÑÑнÑй, викоÑиÑÑовÑваÑимеÑÑÑÑ 6;
              ÑкÑо ж вказÑвник ÑоÑноÑÑÑ Ð´Ð¾ÑÑвнÑÑ Ð½ÑлÑ,
              деÑÑÑковий знак не з'ÑвлÑÑимеÑÑÑÑ. ÐÑи
              поÑÐ²Ñ Ð´ÐµÑÑÑкового знакÑ, пÑинаймнÑ
              одна ÑиÑÑа ÑÑоÑÑиме попеÑÐµÐ´Ñ Ð½Ñого.

              (SUSv2 не Ð·Ð½Ð°Ñ Ð¿Ñо F Ñ Ð¾Ð±ÑÑÑÑ Ð¿Ð¾ÑвÑ
              познаÑÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½ÐµÑкÑнÑенноÑÑÑ Ñ Ð½Ðµ-ÑиÑла
              NaN. СÑандаÑÑ C99 зазнаÑив `[-]inf' або
              `[-]infinity' Ð´Ð»Ñ Ð½ÐµÑкÑнÑенноÑÑÑ Ñ Ð»Ð°Ð½ÑÑжок, Ñо
              поÑинаÑÑÑÑÑ Ð· `nan' Ð´Ð»Ñ Ð½Ðµ-ÑиÑла NaN Ñ
              Ð²Ð¸Ð¿Ð°Ð´ÐºÑ f-пеÑеÑвоÑÐµÐ½Ð½Ñ Ñ, вÑдповÑдно,
              `[-]INF' або `[-]INFINITY' й `NAN*' - Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ
              пеÑеÑвоÑÐµÐ½Ð½Ñ Ð· F.)


       g, G
               ÐÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð´Ð²Ñйного пеÑеÑвоÑено
              до ÑÑÐ¸Ð»Ñ f або e (F Ñ E, вÑдповÑдно, Ð´Ð»Ñ G).
              ÐказÑвник ÑоÑноÑÑÑ Ð·Ð°Ð·Ð½Ð°ÑÐ°Ñ ÑиÑло
              найважливÑÑÐ¸Ñ ÑиÑÑ. ЯкÑо вказÑвник
              ÑоÑноÑÑÑ Ð²ÑдÑÑÑнÑй, викоÑиÑÑовÑваÑимеÑÑÑÑ 6
              ÑиÑÑ; ÑкÑо ÑоÑнÑÑÑÑ Ð´Ð¾ÑÑвнÑÑ Ð½ÑлÑ, вона
              ÑозглÑдаÑимеÑÑÑÑ Ñк 1. e-ÑÑилÑ
              викоÑиÑÑовÑÑÑÑÑÑ, ÑкÑо екÑпоненÑ, пÑÑлÑ
              пеÑеÑвоÑеннÑ, менÑий за -4 або бÑлÑÑий
              або доÑÑвнÑÑ ÑоÑноÑÑÑ. ХвоÑÑÐ¾Ð²Ñ Ð½ÑлÑ
              вилÑÑаÑÑÑÑÑ Ð· дÑÐ¾Ð±Ð¾Ð²Ð¾Ñ ÑаÑÑини ÑезÑлÑÑаÑÑ;
              деÑÑÑкова ÑоÑка з'ÑвиÑÑÑÑ ÑÑлÑки, ÑкÑо за
              Ð½ÐµÑ ÑлÑдÑÑ Ð¿ÑÐ¸Ð½Ð°Ð¹Ð¼Ð½Ñ Ð¾Ð´Ð½Ð° ÑиÑÑа.


       a, A
               (C99; Ð½ÐµÐ¼Ð°Ñ Ð² SUSv2) У Ð²Ð¸Ð¿Ð°Ð´ÐºÑ a, аÑгÑменÑ
              ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð´Ð²Ñйного пеÑеÑвоÑено до
              ÑÑÑÑнадÑÑÑкового пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ñ (з
              викоÑиÑÑаннÑм лÑÑÐµÑ "abcdef") Ñ ÑÑилÑ
              [-]0xh.hhhhpd; Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ A, викоÑиÑÑовÑÑÑÑÑÑ
              пÑеÑÑÐºÑ 0X, лÑÑеÑи "ABSDEF" Ñ ÑоздÑлÑваÑ
              екÑпоненÑи P. Ðовинна бÑÑи одна
              ÑÑÑÑнадÑÑÑкова ÑиÑÑа до деÑÑÑÐºÐ¾Ð²Ð¾Ñ ÑоÑки Ñ
              кÑлÑкÑÑÑÑ ÑиÑÑ Ð¿ÑÑÐ»Ñ Ð´Ð¾ÑÑвнÑÑ Ð²ÐºÐ°Ð·ÑвниковÑ
              ÑоÑноÑÑÑ. СÑандаÑÑна ÑоÑнÑÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð°
              задоволÑнÑÑи пÑавилÑне пÑедÑÑавленнÑ
              ÑиÑла, ÑкÑо пÑавилÑне пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ñ Ð²
              двÑйковÑй ÑиÑÑÐµÐ¼Ñ ÑÑнÑÑ, Ñ Ð¿ÑоÑилежномÑ
              випадкÑ, вона бÑде доÑÑаÑнÑо великоÑ,
              Ñоб ÑозÑÑзнÑÑи знаÑÐµÐ½Ð½Ñ ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð´Ð²Ñйного.
              ЦиÑÑÑ Ð´Ð¾ деÑÑÑÐºÐ¾Ð²Ð¾Ñ ÑоÑки не зазнаÑено
              не неноÑмалÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел Ñ Ð½Ðµ-нÑлÑв,
              Ñак Ñамо не зазнаÑено длÑ
              ноÑмалÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел.


       c
               Ðез модиÑÑкаÑоÑÑ l (англÑйÑÑка "л"),
              аÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ int пеÑеÑвоÑено до
              беззнакового ÑимволÑ, unsigned char Ñ,
              оÑÑиманий в ÑезÑлÑÑаÑÑ Ð·Ð½Ð°Ðº, виведено.
              ÐÑи наÑвноÑÑÑ Ð¼Ð¾Ð´Ð¸ÑÑкаÑоÑÑ l, аÑгÑÐ¼ÐµÐ½Ñ ÑипÑ
              wint_t (ÑиÑокий знак) пеÑеÑвоÑено до
              багаÑобайÑÐ¾Ð²Ð¾Ñ Ð¿Ð¾ÑлÑдовноÑÑÑ ÑеÑез
              виклик ÑÑнкÑÑÑ wcrtomb(3) Ñ, оÑÑиманий Ñ
              ÑезÑлÑÑаÑÑ Ð·Ð½Ð°Ðº виведено.


       s
               Ðез модиÑÑкаÑоÑÑ l (англÑйÑÑка "л"):
              оÑÑкÑÑÑÑÑÑ, Ñо аÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ const char * Ñ
              покажÑиком на маÑив знакÑв (покажÑик
              на ланÑÑжок). Ðнаки з ÑÑого маÑивÑ
              виводÑÑÑÑÑ Ð°Ð¶ до (не вклÑÑаÑÑи)
              завеÑÑÑÑÑого Ð·Ð½Ð°ÐºÑ NULL; ÑкÑо задано
              ÑоÑнÑÑÑÑ, виводиÑÑÑÑ Ð½Ðµ бÑлÑÑе вказаного
              ÑиÑла ÑимволÑв. РвказÑвником ÑоÑноÑÑÑ
              нÑлÑовий знак може бÑÑи вÑдÑÑÑнÑм; ÑкÑо
              вказÑвника ÑоÑноÑÑÑ Ð½ÐµÐ¼Ð°Ñ Ð°Ð±Ð¾ вÑн
              бÑлÑÑий за ÑозмÑÑ Ð¼Ð°ÑивÑ, оÑÑаннÑй
              повинен мÑÑÑиÑи завеÑÑÑвалÑний NULL.

              РмодиÑÑкаÑоÑом l: оÑÑкÑÑÑÑÑÑ, Ñо аÑгÑменÑ
              ÑÐ¸Ð¿Ñ wchar_t * Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñиком на маÑив
              ÑиÑÐ¾ÐºÐ¸Ñ Ð·Ð½Ð°ÐºÑв. ШиÑÐ¾ÐºÑ Ð·Ð½Ð°ÐºÐ¸ з маÑивÑ
              пеÑеÑвоÑено на багаÑобайÑÐ¾Ð²Ñ Ð·Ð½Ð°ÐºÐ¸
              (кожний, ÑлÑÑом Ð²Ð¸ÐºÐ»Ð¸ÐºÑ ÑÑнкÑÑÑ wcrtomb(3)),
              аж до завеÑÑÑÑÑого ÑиÑокого Ð·Ð½Ð°ÐºÑ NULL,
              вклÑÑно). ÐÑÑÐ¸Ð¼Ð°Ð½Ñ Ð² ÑезÑлÑÑаÑÑ
              багаÑобайÑÐ¾Ð²Ñ Ð·Ð½Ð°ÐºÐ¸ виводÑÑÑÑÑ Ð´Ð¾ (але
              не вклÑÑаÑÑи) завеÑÑÑвалÑного NULL. ЯкÑо
              задано ÑоÑнÑÑÑÑ, виводиÑÑÑÑ Ð½Ðµ бÑлÑÑе
              вказаного ÑиÑла ÑимволÑв, але не бÑде
              виведено неповного багаÑобайÑового
              знакÑ. ÐаÑважÑе, Ñо ÑоÑнÑÑÑÑ Ð²ÐºÐ°Ð·ÑÑ Ð½Ð°
              кÑлÑкÑÑÑÑ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð±Ð°Ð¹ÑÑв, а не ÑиÑокиÑ
              ÑимволÑв. ÐаÑив повинен мÑÑÑиÑи
              кÑнÑевий ÑиÑокий NULL, ÑÑба задано ÑоÑнÑÑÑÑ
              Ñ ÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð¼ÐµÐ½Ñе за кÑлÑкÑÑÑÑ Ð±Ð°Ð¹ÑÑв
              маÑивÑ.


       C
               (ÐÐµÐ¼Ð°Ñ Ð² C99, ÑÑлÑки SUSv2) СинонÑм lc. Ðе
              викоÑиÑÑовÑйÑе.


       S
               (ÐÐµÐ¼Ð°Ñ Ð² C99, ÑÑлÑки SUSv2) СинонÑм ls. Ðе
              викоÑиÑÑовÑйÑе.


       p
               ÐÑгÑÐ¼ÐµÐ½Ñ ÑÐ¸Ð¿Ñ void * виводиÑÑÑÑ Ñ
              ÑÑÑÑнадÑÑÑÐºÐ¾Ð²Ð¾Ð¼Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð½Ñ (Ñак нÑби
              вжиÑо %#x або %#lx).


       n
               ÐÑлÑкÑÑÑÑ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð¾ ÑÐ¸Ñ Ð¿ÑÑ Ð·Ð½Ð°ÐºÑв
              збеÑежено Ñ ÑÑле, на Ñке вказÑÑ Ð°ÑгÑменÑ,
              Ñо Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñиком ÑÐ¸Ð¿Ñ int * (або ваÑÑанÑом
              ÑÑого). ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð°ÑгÑменÑÑв не
              вÑдбÑваÑÑÑÑÑ.


       %
               ÐиводиÑÑÑÑ %. ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð°ÑгÑменÑÑв не
              вÑдбÑваÑÑÑÑÑ. Ðовна ÑоÑма: `%%'.


ÐÑиклади
       Ðиведе pi з ÑоÑнÑÑÑÑ 5:

                   #include <math.h>
                   #include <stdio.h>
                          fprintf(stdout, "pi = %.5f\n", 4 * atan(1.0));

       ÐиводиÑÑ Ð´Ð°ÑÑ Ñ ÑÐ°Ñ Ñ ÑоÑÐ¼Ñ "Sunday, July 3, 10:02", де
       Ð´ÐµÐ½Ñ ÑÐ¸Ð¶Ð½Ñ Ñ Ð¼ÑÑÑÑÑ - покажÑики на ланÑÑжки:

                   #include <stdio.h>
                          fprintf(stdout, "%s, %s %d, %.2d:%.2d\n",
                                           weekday, month, day, hour, min);

       Ñам де ÑоÑÐ¼Ð°Ñ Ð·Ð°Ð»ÐµÐ¶Ð¸ÑÑ Ð²Ñд локалÑ, можна
       змÑниÑи аÑгÑменÑи. ÐÑ Ð·Ð½Ð°ÑеннÑми

                   "%1$s, %3$d. %2$s, %4$d:%5$.2d\n"

       ÑÑоÑÑ Ð¼Ñг би оÑÑимаÑи "Sonntag, 3. Juli, 10:02",
       напÑиклад.

       Щоб видÑлиÑи доÑÑаÑнÑо великий ланÑÑжок Ñ
       запиÑаÑи до нÑого (код пÑавилÑний Ð´Ð»Ñ glibc
       2.0 Ñ glibc 2.1):

                   #include <stdio.h>
                          #include <stdlib.h>
                          #include <stdarg.h>
                          char *
                          make_message(const char *fmt, ...) {
                              /* Ðапевне, нам поÑÑÑбно бÑлÑÑ Ð·Ð° 100 байÑÑв.  */
                              int n, size = 100;
                              char *p;
                              va_list ap;
                              if ((p = malloc (size)) == NULL)
                                  return NULL;
                              while (1) {
                                  /* СпÑобÑÑмо запиÑаÑи Ñ Ð²Ñдведене мÑÑÑе.   */
                                  va_start(ap, fmt);
                                  n = vsnprintf (p, size, fmt, ap);
                                  va_end(ap);
                                  /* ЯкÑо Ñе ÑпÑаÑÑвало, повеÑнÑÑи ланÑÑжок. */
                                  if (n > -1 && n < size)
                                      return p;
                                  /* У пÑоÑÐ¸Ð»ÐµÐ¶Ð½Ð¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ, додамо мÑÑÑÑ Ñ  *
                                   * ÑпÑобÑÑмо зновÑ.                        */
                                  if (n > -1)     /* glibc 2.1          */
                                      size = n+1; /* ÑÑоÑи бÑлÑÑе       */
                                  else            /* glibc 2.0          */
                                      size *= 2;  /*  Ñ Ð´Ð²Ð° Ñази бÑлÑÑе */
                                  if ((p = realloc (p, size)) == NULL)
                                      return NULL;
                              }
                          }



ÐÑимÑÑки
       ÐÑÑÐ»ÐµÐ½Ð½Ñ ÑÑнкÑÑй snprintf Ñ vsnprintf, ÑÐºÑ Ð²Ð¸ знайдеÑе
       в glibc, вÑдповÑÐ´Ð°Ñ ÑÑандаÑÑÐ¾Ð²Ñ C99, ÑобÑо
       поводÑÑÑÑÑ Ñак, Ñк опиÑано виÑе, поÑинаÑÑи з
       glibc 2.1. ÐопеÑеднÑо до glibc 2.0.6, вони
       повеÑÑали -1, ÑкÑо вивÑд бÑло ÑÑÑзано.


ÐÑдповÑднÑÑÑÑ ÑÑандаÑÑам
       ФÑнкÑÑÑ fprintf, printf, sprintf, vprintf, vfprintf Ñ vsprintf
       вÑдповÑдаÑÑÑ ANSI X3.159-1989 ("ANSI C") Ñ ISO/IEC 9899:1999
       ("ISO C99"). ФÑнкÑÑÑ snprintf Ñ vsnprintf вÑдповÑдаÑÑÑ
       ÑÑандаÑÑÐ¾Ð²Ñ ISO/IEC 9899:1999.

       СÑоÑовно повеÑненого знаÑÐµÐ½Ð½Ñ snprintf, SUSv2 Ñ
       C99 пеÑеÑаÑÑ Ð¾Ð´Ð½Ðµ одномÑ: ÑкÑо snprintf
       викликано з size=0, SUSv2 обÑмовлÑÑ Ð¿Ð¾Ð²ÐµÑненнÑ
       невизнаÑеного знаÑеннÑ, менÑого за 1, ÑодÑ
       Ñк C99 дозволÑÑ Ð»Ð°Ð½ÑÑÐ¶ÐºÑ Ð±ÑÑи NULL, Ñ ÑÑомÑ
       випадкÑ, Ñ Ð¿Ð¾Ð²ÐµÑнене знаÑÐµÐ½Ð½Ñ (Ñк звиÑайно)
       доÑÑвнÑваÑиме кÑлÑкоÑÑÑ Ð·Ð½Ð°ÐºÑв, ÑÐºÑ Ð±Ñло би
       виведено Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ, Ñкби ланÑÑжок бÑв би
       доÑÑаÑнÑÐ¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸.

       Linux libc4 Ð·Ð½Ð°Ñ Ð¿Ñо п'ÑÑÑ ÑÑандаÑÑÐ½Ð¸Ñ Ð¿ÑапоÑÑÑв C.
       ÐÐ½Ð°Ñ Ñакож пÑо модиÑÑкаÑоÑи довжини h, l Ñ L Ñ
       пеÑеÑвоÑÐµÐ½Ð½Ñ cdeEfFgGinopsuxX, де F Ñ ÑинонÑмом f. Ðа
       додаÑок, бÑблÑоÑека ÑозпÑÐ·Ð½Ð°Ñ D, O, U, Ñк
       ÑинонÑми ld, lo Ñа lu. (Це недобÑе Ñ ÑпÑиÑинило
       ÑеÑÐ¹Ð¾Ð·Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ пÑзнÑÑе, коли пÑдÑÑимка %D
       зникла.) Ðе ÑозпÑзнаÑÑÑÑÑ, Ð·Ð°Ð»ÐµÐ¶Ð½Ñ Ð²Ñд
       локалÑ, деÑÑÑÐºÐ¾Ð²Ñ ÑоздÑлÑваÑÑ, Ñак Ñамо Ñк
       ÑоздÑлÑваÑÑ ÑиÑÑÑ, NaN, неÑкÑнÑенÑÑÑÑ, %m$ або *m$.

       Linux libc5 Ð·Ð½Ð°Ñ Ð¿Ñо п'ÑÑÑ ÑÑандаÑÑÐ½Ð¸Ñ Ð¿ÑапоÑÑÑв C а
       Ñакож пÑапоÑеÑÑ ', локалÑ, %m$ Ñа *m$. Ðона
       ÑозпÑÐ·Ð½Ð°Ñ Ð¼Ð¾Ð´Ð¸ÑÑкаÑоÑи довжини h, l, L, Z, q,
       але пÑÐ¸Ð¹Ð¼Ð°Ñ L Ñа q Ð´Ð»Ñ Ð¾Ð±Ð¾Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ Ð¿Ð¾Ð´Ð²ÑйниÑ
       Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ-Ð´Ð¾Ð²Ð³Ð¸Ñ ÑÑÐ»Ð¸Ñ (Ñе Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ñ). libc5 не
       ÑозпÑÐ·Ð½Ð°Ñ Ð±ÑлÑÑе FDOU, але додала новий знак
       пеÑеÑвоÑÐµÐ½Ð½Ñ m, Ñкий виводиÑÑ strerror(errno).

       glibc 2.0 додала знаки пеÑеÑвоÑÐµÐ½Ð½Ñ C й S.

       glibc 2.1 додала модиÑÑкаÑоÑи довжини hh, j, t, z,
       а Ñакож знаки пеÑеÑвоÑÐµÐ½Ð½Ñ a, A.

       glibc 2.2 додала знак пеÑеÑвоÑÐµÐ½Ð½Ñ F з
       ÑеманÑÐ¸ÐºÐ¾Ñ C99, а Ñакож пÑапоÑеÑÑ I.


ÐÑÑоÑÑÑ
       Unix V7 визнаÑÐ°Ñ ÑÑи ÑÑнкÑÑÑ: printf, fprintf Ñ sprintf Ñ
       Ð¼Ð°Ñ Ð¿ÑапоÑеÑÑ -, ÑиÑÐ¸Ð½Ñ Ð°Ð±Ð¾ ÑоÑнÑÑÑÑ *,
       модиÑÑкаÑÐ¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ l Ñ Ð¿ÐµÑеÑвоÑÐµÐ½Ð½Ñ doxfegcsu
       Ñазом з D, O, U, X, Ñк ÑинонÑми ld, lo, lu, lx. Це
       залиÑаÑÑÑÑÑ Ð´ÑйÑним Ñ BSD 2.9.1, але BSD 2.10 маÑ
       пÑапоÑÑÑ #, + й <пÑобÑл> Ñ Ð±ÑлÑÑе не згадÑÑ D, O, U,
       X. BSD 2.11 Ð¼Ð°Ñ vprintf, vfprintf, vsprintf Ñ Ð·Ð°ÑÑеÑÑÐ³Ð°Ñ Ð½Ðµ
       викоÑиÑÑовÑваÑи D, O, U, X. BSD 4.3 Reno додало
       пÑапоÑеÑÑ , модиÑÑкаÑоÑи довжини h Ñз L Ñ
       пеÑеÑвоÑÐµÐ½Ð½Ñ n, p, E, G, X (з ÑÑÑаÑним знаÑеннÑм) Ñ
       вÑдкинÑла D, O, U. BSD 4.4 ввела ÑÑнкÑÑÑ snprintf Ñ
       vsnprintf Ñ Ð¼Ð¾Ð´Ð¸ÑÑкаÑÐ¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ q. FreeBSD маÑ
       Ñакож ÑÑнкÑÑÑ asprintf Ñ vasprintf, ÑÐºÑ Ð²ÑдводÑÑÑ
       доÑÑаÑнÑо великий бÑÑÐµÑ Ð´Ð»Ñ sprintf. У glibc ÑÑнÑÑÑÑ
       ÑÑнкÑÑÑ dprintf Ñ vdprintf, ÑÐºÑ Ð·Ð´ÑйÑнÑÑÑÑ Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾
       деÑкÑипÑоÑÑ ÑÐ°Ð¹Ð»Ñ Ð·Ð°Ð¼ÑÑÑÑ Ð¿Ð¾ÑокÑ.


Ðади
       ÐÑкÑлÑки sprintf Ñ vsprintf пеÑедбаÑаÑÑÑ Ð²Ð·Ð°ÑмодÑÑ Ð·
       ланÑÑжками довÑлÑÐ½Ð¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸, необÑÑдно
       бÑÑи обеÑежним, Ñоб не пеÑеповниÑи дÑйÑний
       пÑоÑÑÑÑ; ÑÑого, ÑаÑÑо, неможливо бÑÑи певним.
       ÐаÑважÑе, Ñо довжина оÑÑиманого ланÑÑжка
       може бÑÑи Ð»Ð¾ÐºÐ°Ð»ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ Ñ Ð²Ð°Ð¶ÐºÐ¾
       пеÑедбаÑÑваноÑ. ÐикоÑиÑÑовÑйÑе snprintf Ñ vsnprintf
       наÑомÑÑÑÑ (або asprintf Ñ vasprintf).

       Linux libc4.[45] не Ð¼Ð°Ñ snprintf, заÑе вклÑÑаÑ
       бÑблÑоÑÐµÐºÑ libbsd, Ñка мÑÑÑиÑÑ snprintf,
       еквÑваленÑÐ½Ñ sprintf, ÑобÑо ÑакÑ, Ñо ÑгноÑÑÑ
       аÑгÑÐ¼ÐµÐ½Ñ ÑозмÑÑÑ. Таким Ñином, викоÑиÑÑаннÑ
       snprintf з ÑаннÑми веÑÑÑÑми libc4 пÑизводиÑÑ Ð´Ð¾
       ÑеÑÐ¹Ð¾Ð·Ð½Ð¸Ñ Ð¿Ñоблем з небезпекоÑ.

       Ðод на кÑÑÐ°Ð»Ñ printf(foo) ÑаÑÑÑÑе вказÑÑ Ð½Ð°
       помилкÑ, оÑкÑлÑки foo може вклÑÑаÑи знак %.
       ЯкÑо foo поÑодиÑÑ Ð· незаÑиÑеного
       коÑиÑÑÑваÑÑкого вводÑ, вона може мÑÑÑиÑи %n,
       ÑпÑиÑинÑÑÑи Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ пам'ÑÑÑ Ñ Ð´ÑÑÑ Ñ Ð·Ð°ÑиÑÑÑ.


ÐивÑÑÑÑÑ Ñакож
       printf(1), asprintf(3), dprintf(3), wcrtomb(3), wprintf(3), scanf(3),
       locale(5)





© 2005-2007 DLOU, GNU FDL     2007-10-27-16:31                      printf(3)