Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

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

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

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

 

#include " stdafx.h"

#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

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

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

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

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

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

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

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

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

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

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

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

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

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

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* Строка); Выводит на экран строку.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.