stdio.h

printf

Описание

int printf( char *format, ... )

Извежда низ, форматиран на базата на параметъра format.

Параметри

char *format

Форматиращия низ е съставен от нула или повече нормални символи и директиви за преобразуване. Всяка директива за преобразуване започва с знака % и се заменя с един параметър.

Типове директиви за форматиране

Директива Описание
%% Отпечатва процент
%c Отпечатва символ
%d Отпечатва int със знак
%i Отпечатва int със знак
%e Отпечатва се в научна нотация е
%E Отпечатва се в научна нотация Е
%f Отпечатва число с плаваща запетая
%g Отпечатай с по краткото % е или %f
%G Отпечатай с по краткото % E или %f
%o Отпечатва числото в осмично представяне
%s Отпечатва низ
%u Огпечатва unsigned int
%x Отпечатва число в 16-тичен формат с малки букви
%X Отпечатва число в 16-тичен формат с големи букви
%p Отпечатва указател
%n  

Всяка директива за форматиране в допълнение може да притежава четери вида флага. Флагове за подравняване и запълване, флагове за дължина, флагове за точност и флагове за модифициране.

Флагове за подравняване и запълване

Флаг Описание
- Ляво подравняване при зададена дилжина на запълване. По подразбиране подравняването е десно.
+ Задава показването венаги на знака за плюс или минус. По подразбиране се показва знака само за минус.
(интервал) Ако не е зададен знак за отпечатване, интервал се печата пред числото.
# Използва се с %x %X. Задава пред числото да бъде поставен знака 0x.
0 Запълването на определената дължина се осъществява с нули. По подразбиране е с интервали.

 Флагове за дължина

Флаг Описание
(дължина) Минимален брой символи за отпечатване. Ако дължината на стоиноста и по малка от зададената резултата се допълва с интевали. Стойноста не се отрязва ако дължината и не надхвърла зададената.
* Минималния брой символи се задава динамично чрез параметър в аргументите.

Флагове за точност

Флаг Описание
.дължина

За целочислени типове(%d ,%i, %u, %o, %x, %X) флага определя броя на символите кайто ще бъдат показани. За числа с плаваща запетая (%f, %E) определя броя символи които ще бъдат показани след запетаята. За низове задава максималния брой символи който ще бъдат отпечатани.

.*  Задава броя на символите динамично чрез параметър.

 Флагове за модифициране

Флаг Описание
h Визуализира short int параметри. Използва се с целочислиени типове(%d ,%i, %u, %o, %x, %X).
l Визуализира long int пораметри с целочислени типове(%d ,%i, %u, %o, %x, %X) и разширени низове с %s.
L Визуализира long double параметри. Използва се с типове за плаваща запетая (%f, %g, %G, %e, %E).

 

...

Множество от параметри. Броя на параметрите трябва да бъде равен на броя на зададените директиви в форматиращия низ.

Връщани стойности

Връща дължината на изведения низ.

Примери

от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. int main()
  3. {
  4.  int a = 76;
  5.  double b = 3.14;
  6.  char c[5] = "test";
  7.  int d = -46;
  8.  printf("%%c = %c", a); //%c = L
  9.  printf("%%d = %d", a); //%d = 76
  10.  printf("%%i = %i", a); //%i = 76
  11.  printf("%%e = %e", a); //%e = 8.588607e+105
  12.  printf("%%E = %E", a); //%E = 8.588607E+105
  13.  printf("%%f = %f", b); //%f = 3.140000
  14.  printf("%%g = %g", a); //%g = 8.58861e+105
  15.  printf("%%G = %G", a); //%G = 8.58861E+105
  16.  printf("%%o = %o", a); //%o = 114
  17.  printf("%%s = %s", c); //%s = test
  18.  printf("%%u = %u", a); //%u = 76
  19.  printf("%%u = %u", d); //%u = 4294967250
  20.  printf("%%o = %o", a); //%o = 114
  21.  printf("%%x = %x", a); //%x = 4c
  22.  printf("%%X = %X", a); //%X = 4C
  23.  printf("%%p = %p", c); //%p = 0012FF3C
  24.     
  25.  return 0;
  26. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. int main()
  3. {
  4.  char leters[11] = "0123456789";
  5.  
  6.  printf("%.1s", leters); //0
  7.  printf("%.2s", leters); //01
  8.  printf("%.3s", leters); //012
  9.  printf("%.4s", leters); //0123
  10.  printf("%.5s", leters); //01234
  11.  printf("%.6s", leters); //012345
  12.  printf("%.7s", leters); //0123456
  13.  printf("%.8s", leters); //01234567
  14.  printf("%.9s", leters); //012345678
  15.  printf("%s", leters);   //0123456789
  16. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. int main()
  3. {
  4.  float pi = 3.14159265;
  5.  printf("%.2f", pi); //3.14
  6.  printf("%.4f", pi); //3.1415
  7.  printf("%.6f", pi); //3.141592
  8.  printf("%.*f", 8, pi); //3.14159265 задава че трябва да бъдат отпечатани 8 символа след запетаята
  9.  int a = 5;
  10.  printf("%05d", a); //00005
  11.  printf("% 5d", a); //    5 с четери интервала от пред
  12.     
  13.  return 0;
  14. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. int main()
  3. {
  4.  printf("Това е пример!!!"); //Отпечатва низ
  5.  return 0;
  6. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. //Печатане на цветни текстове. Работи под Linux.
  2. #include <stdio.h>
  3.  
  4. #define ANSI_NORMAL  "\033[0m"
  5.  
  6. #define ANSI_RED     "\033[0;31;40m"
  7. #define ANSI_GREEN   "\033[0;32;40m"
  8. #define ANSI_YELLOW  "\033[0;33;40m"
  9. #define ANSI_BLUE    "\033[0;34;40m"
  10. #define ANSI_MAGENTA "\033[0;35;40m"
  11. #define ANSI_CYAN    "\033[0;36;40m"
  12. #define ANSI_WHITE   "\033[0;37;40m"
  13.  
  14. #define ANSI_BOLD_RED      "\033[1;31;40m"
  15. #define ANSI_UNDERLINE_RED "\033[4;31;40m"
  16. #define ANSI_BLINK_RED     "\033[5;31;40m"
  17.  
  18. int main()
  19. {
  20.   printf(ANSI_RED "TEST"); //Отпечатва текста в червено
  21.   return 0;
  22. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    char bell=`\a`;
  6.    printf("%c", bell);   /* "%c" отпечатва символ */
  7.    return 0;
  8. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    float sale, tax;
  6.    float tax_rate = 0.08; //комисионна  
  7.  
  8.    sale = 22.54; //цена на продажбата
  9.  
  10.    tax = sale * tax_rate;
  11.  
  12.    printf("Таксата за продажбата е:");
  13.    printf("%f", tax);
  14.  
  15.    return 0;
  16. }
  17.  

Бележки

Символа * поставен след форматиращата точка (%.*s) се използва за динамично задаване на броя символи за отпечатване.

Виж също

sprintf - пише форматиран изход в буфер
snprintf - пише форматиран изход в буфер
fprintf - форматиран изход във файл
vprintf - печата форматиран изход от списък с аргументи
vfprintf - печата форматиран изход от списък с аргументи
vsprintf - печата форматиран изход от списък с аргументи