profile="http://gmpg.org/xfn/11"> Форматный вывод на консоль. Функция printf() в C (Си). | Разработчику о работе с 1С:Предприятие, Pascal, Паскаль

Форматный вывод на консоль. Функция printf() в C (Си).

Форматный вывод на консоль. Функция printf() в C (Си).

Данные, как правило, требуется выводить на консоль. В частном случае на экран. Функция printf() выполняет форматный вывод. Рассмотрим функцию printf() более подробно.
Главное назначение функции printf() вывод определенного количество символов, в случае ошибки возвращается отрицательное значение. Прототип функции:
int printf (const char *управляющая строка).
Примеры:
Вывод символов.
1. Чтобы вывести отдельный символ применяйте спецификатор %c.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	char c_AD, c_nm;  /*объявление переменой тип char*/
	c_AD='d';
	c_nm='g';
	printf("\n Переменная c_AD = %c, а переменная c_nm = %c",c_AD, c_nm);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}

Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод одного символа
Форматный вывод на консоль. Функция printf() в C (Си), вывод одного символа.

2. Чтобы вывести строку применяйте спецификатор %s.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	printf("\n %s %s","Привет", "мир!");

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод строки
Форматный вывод на консоль. Функция printf() в C (Си), вывод строки.

Модификатор точности для строки и модификатор минимальной ширины поля.
Применяют для установки максимальной длины поля выводимой строки.
%4.10s — максимальная длина 10 (десять) символов, минимум 4 символа.
В данном примере будут выводиться максимально только 10 символов, остальные не будут.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/

	printf("\n %4.10s", "Вывод строки гораздо больше чем необходимо");


	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод строки модификатор точности для строки и модификатор минимальной ширины поля
Форматный вывод на консоль. Функция printf() в C (Си), вывод строки модификатор точности для строки и модификатор минимальной ширины поля.

Вывод чисел.
1. Чтобы вывести целое число со знаком используйте спецификатор преобразования %d или %i.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	int i_Num1, i_Num2;  /*объявление переменой тип int*/
	i_Num1=4;
	i_Num2=-54;
	printf("\n Переменная i_Num1 = %d, а переменная i_Num2 = %d",i_Num1, i_Num2);
	printf("\n Переменная i_Num1 = %i, а переменная i_Num2 = %i",i_Num1, i_Num2);
	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  целого числа со знаком
Форматный вывод на консоль. Функция printf() в C (Си), вывод целого числа со знаком.

2. Если требуется вывести целое число без знака, необходимо применять спецификатор преобразования %u.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	unsigned int i_Num1;  /*объявление переменой тип unsigned int*/
	i_Num1=65535;
	printf("\n Переменная i_Num1 = %u",i_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  целого числа без знака
Форматный вывод на консоль. Функция printf() в C (Си), вывод целого числа без знака.

3. Рассмотрим функцию printf() для вывода вещественных чисел.
Чаще всего применяют спецификатор преобразования %f. Он позволяет выводить числа с плавающей точкой в естественном виде.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	float i_Num1;
	i_Num1=6.5535;
	printf("\n Переменная i_Num1 = %f",i_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа.

Можно управлять форматом вывода. С этой целью используют модификаторы формата (спецификаторы).

Модификатор минимальной ширины поля.
Так, если требуется указать минимальную ширину поля, вводят целое число между знаком % и кодом формата. Если длина числа будет больше, чем указанная минимальная ширина, то число выводится полностью. Для сохранения формата вывода по умолчанию добавляются пробелы. Вместо пробелов можно указать цифру 0 (ноль) перед модификатором ширины поля.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	float i_Num1, i_Num2;
	i_Num1=6.78;
	printf("\n i_Num1 = %f без модификатора ширины",i_Num1);
	printf("\n i_Num1 = %4f минимальная ширина 4 ",i_Num1);
	printf("\n i_Num1 = %10f минимальная ширина 10 ",i_Num1);
	printf("\n i_Num1 = %010f минимальная ширина 10, ноль дополнение",i_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, модификатор минимальной ширины поля.

Данный модификатор удобно применять для вывода таблицы.
Таблица умножения.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	printf("\n таблица умножения");
	int i_Num1, i;
	i_Num1=4;
	for (i=1; i<10; i++)
		printf("\n %4d x %4d = %4d ", i_Num1, i, i_Num1*i);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, таблица умножения.

Модификатор точности вывода вещественных чисел.
Сам модификатор — это точка и целое число. Модификатор размещается после модификатора минимальной ширины.
Для вещественных чисел.
Часто требуется ограничить вывод цифр после запятой (в Си точки), для этого применяют модификаторы точности.
%.5f с модификатором, 5 знаков.
Рассмотрим пример:
Число 2.4587123654, необходимо вывести его на консоль (экран монитора) без модификатора и с модификатором.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	float i_Num1;
	i_Num1=2.4587123654;

	printf("\n %f без модификатора ", i_Num1);
	printf("\n %.5f с модификатором, 5 знаков ", i_Num1);
	printf("\n %.2f с модификатором, 2 знака ", i_Num1);
	printf("\n %10.2f с модификаторами 10 ширина поля и 2 знака после запятой", i_Num1);
	printf("\n %010.2f с модификаторами 10 ширина поля (добавлен ноль) и 2 знака после запятой", i_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа, модификатор точности
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, модификатор точности.

4. Спецификатор преобразования %E или %e для вещественных чисел.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	float f_Num1, f_Num2;
	f_Num1=0.000004;
	f_Num2=50000000;
	printf("\n %f", f_Num1);
	printf("\n %E", f_Num1);
	printf("\n %e", f_Num1);
	printf("\n %f", f_Num2);
	printf("\n %E", f_Num2);
	printf("\n %e", f_Num2);
	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа, спецификатор E
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, спецификатор E.

5. Спецификатор преобразования %G или %g для вещественных чисел.

Данный спецификатор предлагает функции printf() выбрать спецификацию %E или %f для %G, чтобы получился самый короткий вывод числа.

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	float f_Num1;
	f_Num1=0.000004;
	for (f_Num1=1.0; f_Num1>1.e-10; f_Num1=f_Num1/10)
		printf("\n %g", f_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа, спецификатор E
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, спецификатор G.

6. Спецификатор преобразования %p позволяет отображать адрес объекта, например переменной.
Пример:
int *p
Применяем его для вывода машинного адреса переменной p в области памяти в компьютере. Более подробно Указатели в C (Си).

7. Если требуется вывести целое число без знака в восьмеричном или шестнадцатеричном формате используем спецификатор преобразования %o или %x (%X).

#include <stdio.h>
#include <conio.h>

int main() {
	/*Функция printf() в C (Си).*/
	unsigned int i_Num1;
	printf("\n формат 10 рич  8-рич  16-рич", i_Num1, i_Num1, i_Num1);
	for (i_Num1=0; i_Num1 <= 16; i_Num1++)
		printf("\n         %d      %o     %x", i_Num1, i_Num1, i_Num1);

	printf("\n Для завершения программы нажмите Enter");
	getch();
	return 0;
}


Результат:
Форматный вывод на консоль. Функция printf() в C (Си), вывод  вещественного числа, целое число без знака в восьмеричном или шестнадцатеричном формате
Форматный вывод на консоль. Функция printf() в C (Си), вывод вещественного числа, целое число без знака в восьмеричном или шестнадцатеричном формате.


Спецификаторы формата для функции printf() языка C (Си).
спецификаторПредназначение
%dдля вывода десятичного целого со знаком
%iдля вывода десятичного целого со знаком
%uдля вывода десятичного целого без знака
%oдля вывода восьмеричного целого без знака
%xдля вывода шестнадцатеричного целого без знака (буквы в нижнем регистре)
%Xдля вывода шестнадцатеричного целого без знака (буквы в верхнем регистре)
%fдля вывода десятичного числа с плавающей точкой в обычной форме
%eдля вывода десятичного числа с плавающей точкой в экспоненциальной форме. Маленькое e
%Eдля вывода десятичного числа с плавающей точкой в экспоненциальной форме. Большое E
%g вывод числа в зависимости, какая длина вывода будет короче, применяется или %e, или %f
%G вывод числа в зависимости, какая длина вывода будет короче, применяется или %E, или %F
%p вывод адреса какого либо объекта в памяти компьютера, вывод указателя
%c вывод символа
%s вывод строки символов с нулевым завершающим байтом
%% вывод знака %


Управляющие символьные константы для функции printf() языка C (Си).
КодУправляющий символ, Escape-последовательностиПредназначение
0x00‘\0’Нуль-символ, NULL. Конец строки
0x07‘\a’Подача звукового сигнала
0x08‘\b’Перевод курсора влево на одну позицию. Backspace
0x09‘\t’Горизонтальная табуляция. Tab
0x0A‘\n’Для перевода строки. Enter
0x0B‘\v’Вертикальная табуляция, перевод строки для консоли
0x0C‘\f’Подача формата
0x0D‘\r’Возврат каретки
0x5c‘\\’вывод символа \
0x27‘\»вывод символа ‘
0x22‘\»‘вывод символа »
0x3f‘\?’вывод символа ?
‘\ooo’вывод ooo, восьмеричное число
‘\xhhh’вывод hhh, шестнадцатеричное число

Комментарии запрещены.