Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

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

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Организация ввода-вывода в стиле СИ




 

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

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

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

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

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

#include <stdio.h>

void main()

{

printf(“\nЗдравствуйте!\n”);

}

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

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

 

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

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

Таблица 3 – Значения флагов

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

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

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

Таблица 4 – Значения модификаторов

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

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

Таблица 5 – Значения спецификаторов

Спецификатор Тип аргумента Назначение
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);

 

 

1.6 Ввод, вывод данных в стиле СИ++

 

Механизм для ввода-вывода в СИ++ называется потоком. Название произошло оттого, что информация вводится и выводится в виде потока байтов – символ за символом.

Класс istream реализует поток ввода, класс ostream – поток вывода. Эти классы определены в файле заголовков iostream.h. Библиотека потоков ввода-вывода определяет три глобальных объекта: cout, cin и cerr. cout называется стандартным выводом, cin – стандартным вводом, cerr – стандартным потоком сообщений об ошибках. cout и cerr выводят на терминал и принадлежат к классу ostream, cin имеет тип istream и вводит с терминала.

Вывод осуществляется с помощью операции <<, ввод с помощью операции >>. Выражение

cout << "Пример вывода: " << 34;

напечатает на терминале строку "Пример вывода", за которым будет выведено число 34. Выражение

int x;

cin >> x;

введет целое число с терминала в переменную x. (Разумеется, для того, чтобы ввод произошел, на терминале нужно напечатать какое-либо число и нажать клавишу возврат каретки.)

Чтобы не усложнять программу, воспользуемся одним из готовых, предопределенных классов – классом ostream (поток ввода-вывода). Этот класс определен в файле заголовков " iostream.h ". Поэтому первое, что надо сделать – включить файл заголовков в нашу программу:

#include <iostream.h>

int main() { return 1; }

Кроме класса, файл заголовков определяет глобальный объект этого класса cout. Объект называется глобальным, поскольку доступ к нему возможен из любой части программы. Этот объект выполняет вывод на консоль. В функции main мы можем к нему обратиться и послать ему сообщение:

#include <iostream.h>

int main()

{

cout << "Hello world!" << endl;

return 0;

}

Операция сдвига << для класса ostream определена как "вывести". Таким образом, программа посылает объекту cout сообщения "вывести строку Hello world!" и "вывести перевод строки" (endl обозначает новую строку). В ответ на эти сообщения объект cout выведет строку "Hello world!" на консоль и переведет курсор на следующую строку.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных