Ввод-вывод с использованием стандартной библиотеки ввода-вывода 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!