Ввод-вывод с использованием стандартной библиотеки ввода-вывода stdio.h



Все возможности организации ввода-вывода СИ реализованы в библиотечных функциях стандартной библиотеки stdio.h.

Для организации вывода используется функция:

printf (форматная_строка,список_аргументов);

Форматная строка ограничивается кавычками «”» и может включать произвольный текст, управляющие символы и спецификации преобразования данных.

Список аргументов может отсутствовать.

#include "stdafx.h"

#include <stdio.h>

void main()

{

printf("\nhello!\n");

}

Препроцессорная директива # include<stdio.h> подключает стандартную библиотеку ввода-вывода.

При организации вывода данных на экран используются спецификации преобразования, которые имеют следующий обобщённый вид:

%флажки ширина_поля.точность модификатор спецификатор

Обязательными являются «%» и спецификатор.

Таблица 4 – Назначение флагов

Флаг Назначение
- Выравнивание результата по левому краю поля.
+ Результат всегда выводится с указанием знака «+» или «-».
Пробел Если значение не отрицательное, то вместо плюса выводится пробел, для отрицательных значений выводится «-».
# Аргументы могут быть преобразованы с использованием альтернативной формы

ширина_поля – целое положительное число, определяющее количество знакомест для вывода значения.

точность – целое положительное число, определяющее количество цифр после десятичной запятой для вывода значения с плавающей точкой.

Возможные модификаторы представлены в таблице 5.

 

Таблица 5 – Назначение модификаторов

Модификатор Назначение
N Для близкого указателя
F Для дальнего указателя
h Для значения short int
l Для значения long
L Для значения long double

Спецификаторы определяют тип выводимого значения и форму вывода.

Таблица 6 – Назначение спецификаторов

Спецификатор Тип аргумента Назначение
d Целого типа Для целых десятичных чисел (int)
i Целого типа Для целых десятичных чисел (int)
o Целого типа Для беззнаковых восьмеричных целых
u Целого типа Для беззнаковых десятичных целых
x Целого типа Для беззнаковых шестнадцатеричных целых (a,b,c,d,e,f)
X Целого типа Для беззнаковых шестнадцатеричных целых (A,B,C,D,E,F)
Спецификатор Тип аргумента Назначение
f вещественный Знаковое вещественное число в формате [+/-]ddd.dddd
e вещественный Знаковое вещественное число в формате [+/-]d.dddd или в экспоненциальной форме
g вещественный Знаковое вещественное число в формате или f, или e (в зависимости от выводимого значения)
E вещественный Такое же, как и e
G вещественный Такое же, как и g
s строковый  ввод-вывод строковых данных
c символьный ввод-вывод символов

 

Например:

Printf (“|n summa=%f”,summa);

На экране будет выведено:

Summa=2102.3

После выполнения операторов:

float c=48.3, e=16.33;

int k=-83;

printf (“\nc=%f\tk=%d\te=%e”,c,k,e);

на экране будет выведено

c=48.299999       k=-83            e=1.63300 e+01

Для тех же переменных:

printf (“\ nc =%5.2 f\ tk =%5 d\ te =%8.2 f\ te =%11.4 e”, c, k, e, e);

на экране будет выведено

c=48.30        k= -83            e=16.33              e= 1.6330 e+01

В состав строки вывода могут входить управляющие последовательности:

\ n’ – перевод строки;

\ t’ – горизонтальная табуляция;

\ r’ – возврат каретки к началу строки;

\\’ – обратная косая черта \;

\’’ – апостроф ‘;

\0’ – нулевой символ;

\ a’ – сигнал-звонок;

\ b’ – возврат на одну позицию;

\ f’ – перевод строки;

\ v’ – вертикальная табуляция;

\?’ – знак вопроса.

 

Для организации ввода данных с клавиатуры используется функция

scanf (форматная_строка, список_аргументов);

Эта функция выполняет чтение значений вводимых с клавиатуры и присваивает их последовательно аргументам. Форматная строка представляет собой последовательность спецификаций, управляющих преобразованием вводимых значений.

%ширина_поля модификатор спецификатор

Ширина_поля – целое положительное число, позволяющее определить, какое количество байтов из входного потока соответствует вводимому значению.

модификатор и спецификатор – аналогичны функции printf ().

Аргументами функции ввода могут быть адреса переменных, которым будут присвоены вводимые значения. Они задаются при помощи операции взятия адреса “&имя_переменной

Например:

scanf (“%d%f%f”,&n,&z,&x);

Математические функции

Для выполнения математических вычислений в стандартной математической библиотеке <math.h> описаны следующие функции:

int abs ( int к) ; double fabs ( double x); Возвращает целое (abs) или дробное (fabs) абсолютное значение аргумента, в качестве которого можно использовать выражение соответствующего типа.

double acos (double x);

double asin (double x);

double atan (double x);

long double acosl(long double x) ;

long double asinl(long double x);

long double atanl(long double x);

Возвращает выраженную в радианах величину угла, арккосинус, арксинус или арктангенс которого передан соответствующей функции в качестве аргумента. Аргумент функции должен находиться в диапазоне от -1 до 1.

double cos ( double x);

double sin (double x);

double tan (double x);

long double cosl(long double x);

long double sinl(long double x);

long double tanl(long double x);

Возвращает синус, косинус или тангенс угла. Величина угла должна быть задана в радианах.

#include "stdafx.h"

#include <stdio.h>

#include <math.h>

int main(void)

{

double result;

double x = 0.5;

result = cos(x);

printf("Косинус числа %lf – %lf\n", x, result);

return 0; }

double exp(double x); long double exp(long double lx); Возвращает значение, равное экспоненте аргумента (е *, где е — основание натурального логарифма).

double pow (double x, double y); long double powl(long double (x), long double (y)); Возвращает значение, равное хУ.

 

#include "stdafx.h"

#include <stdio.h>

#include <math.h>

int main(void)

{

double result;

double x = 4.0;

result = exp(x);

printf("'e’ в степени %lf (e ^ %lf) = %lf\n", x, x, result);

return 0;

}

double sqrt(double к );

Возвращает значение, равное квадратному корню из аргумента.

double log(double x);

double log10(double x);

long double logl(long double (x));


Дата добавления: 2019-02-22; просмотров: 212; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!