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


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



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

#include <stdio.h>

void main ()

{

printf ( "\nhello!\n" );

}

 

Препроцессорная директива #include <stdio.h> подключает стандартную библиотеку ввода-вывода. «\n» – перевод строки (управляющий символ).

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

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

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

 

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

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

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

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

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

 

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

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

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

 

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

Спецификатор Тип аргумента Назначение
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.63300e+01

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

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

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

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

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

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

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

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

‘*’ в настоящее время не используется;

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

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

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

Например:

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

При организации ввода-вывода данных используются также функции, описанные в стандартной библиотеке ввода-вывода(<stdio.h>):

puts(const char* Строка); Выводит на экран строку символов и переводит курсор в начало следующей строки экрана. В качестве параметра функции можно использовать строковую константу или строковую переменную.

char *gets(char* s); Вводит с клавиатуры строку символов. Вводимая строка может содержать пробелы.

int putch(int с); Выводит на экран символ.

int getch(void); Возвращает код символа нажатой клавиши. Если нажата служебная клавиша, то функция getch возвращает 0. В этом случае, для того, чтобы определить, какая служебная клавиша нажата, нужно обратиться к функции getch еще раз. Замечание Функция getch не выводит на экран символ, соответствующий нажатой клавише.

cputs(const char* Строка); Выводит на экран строку.

 

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

Для выполнения математических вычислений в стандартной математической библиотеке <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 <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 sqrt(double к);

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

double log(double x);

double log10(double x);

long double logl(long double (x));

long double log10l(long double (x));

log, logl – возвращают значение натурального логарифма аргумента. log10, log10l – возвращают значение логарифма аргумента по основанию 10.

 

В библиотеке <stdlib.h> описаны генераторы случайных чисел.

int rand(void); Возвращает случайное целое число в диапазоне от 0 до RAND_MAX. Перед первым обращением к функции rand необходимо инициализировать генератор случайных чисел. Для этого надо вызвать функцию srand. void srand(unsigned к); Инициализирует генератор случайных чисел. Обычно в качестве параметра функции используют переменную, значение которой предсказать заранее нельзя, например это может быть текущее время.

Операции

В соответствии с количеством операндов, которые используются в операциях они делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).

 

Операция Описание
Унарные операции
++ Увеличение на единицу: префиксная операция - увеличивает операнд до его использования, постфиксная операция увеличивает операнд после его использования.
-- Уменьшение на единицу: префиксная операция - уменьшает операнд до его использования, постфиксная операция уменьшает операнд после его использования.
sizeof вычисление размера (в байтах) для объекта того типа, который имеет операнд
- Унарный минус
+ Унарный плюс
! Логическое отрицание (НЕ). В качестве логических значений используется 0 (false) - ложь и не 0 (true) - истина, отрицанием 0 будет 1, отрицанием любого ненулевого числа будет 0.
& Получение адреса операнда
* Получение значения, находящегося по указанному адресу (разыменование)
new Выделение памяти
delete Освобождение памяти
(type) Преобразование типа
Бинарные операции
Мультипликативные
* умножение операндов арифметического типа
/ деление операндов арифметического типа (если операнды целочисленные, то выполняется целочисленное деление)
% получение остатка от деления целочисленных операндов
Аддитивные
+ бинарный плюс (сложение арифметических операндов)
- бинарный минус (вычитание арифметических операндов)
Операторы сдвига
>> Побитовый (поразрядный) оператор сдвига вправо
<< Побитовый (поразрядный) оператор сдвига влево
Операции сравнения
< меньше, чем
<= меньше или равно
> больше
>= больше или равно
= равно
!= не равно
Логические о
&& конъюнкция (И) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
|| дизъюнкция (ИЛИ) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
Тернарная
?: Условная операция в ней используется три операнда. Выражение1? Выражение2: Выражение3; Первым вычисляется значение выражения1. Если оно истинно, то вычисляется значение выражения2, которое становится результатом. Если при вычислении выражения1 получится 0, то в качестве результата берется значение выражения3. Например: x<0? -x: x; //вычисляется абсолютное значение x.
Присваивание
= присваивание
*= умножение с присваиванием (мультипликативное присваивание)
/= деление с присваиванием
%= деление с остатком с присваиванием
+= сложение с присваиванием
-= вычитание с присваиванием

 



Поделиться:


Последнее изменение этой страницы: 2016-12-11; просмотров: 341; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.2.15 (0.014 с.)