Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_si.docx
Скачиваний:
33
Добавлен:
25.09.2019
Размер:
205.61 Кб
Скачать

11. Ввод-вывод символов

К наиболее простым и распространенным функциям ввода-вывода данных языка С относятся функции printf() и scanf().

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

printf("управляющая строка", [список аргументов]);

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

Функция ввода данных scanf() является одной из многих функций форматированного ввода, имеющихся во внешних библиотеках. Функция scanf() в качестве фактических параметров использует адреса переменных, а не их значения. Для этого перед соответствующим параметром ставят символ взятия адреса &.

&а – означает "адрес переменной а, а не значение, которое переменная имеет в данный момент".

Перед именем строки & не указывается, поскольку имя строки совпадает с ее адресом. Строка формата функции scanf() указывает, какие данные ожидаются на входе. Если функция встречает в форматированной строке знак %, за которым следует знак преобразования, то она будет пропускать на входе символы до тех пор, пока не встретит какой-нибудь не пустой символ.

Пример:

#include <STDIO.H>

#include <CONIO.H>

main()

{

int weight, height;

printf("Введите ваш вес: ");

scanf("%d", &weight);

printf("Введите ваш рост: ");

scanf("%d", &height);

printf("\n\n Вес = %d, рост = %d \n", weight, height);

getch();

}

В общем случае, параметры функции scanf() имеют вид:

scanf("управляющая строка", [список аргументов]);

12. Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода.

Форматированный ввод-вывод

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

Символ формата

Тип выводимого объекта

%c – char

Символ

%s – string

Строка

%d – int

Целое число

%u – unsigned int

Целое беззнаковое значение

%o – int

Беззнаковое число в 8-ричном представлении

%x – int

Беззнаковое число в 16-ричном представлении

%ld – long

Длинное число в 10-чном представлении

%lo – long

Длинное число в 8-ричном представлении

%lx – long

Длинное число в 16-ричном представлении

%lu – unsigned long

Беззнаковое длинное число

%f – float/double

Число с фиксированной точкой

%e – float/double

Число в экспоненциальной форме

%g – float/double

В виде f или e в зависимости от значения

%lf – long/float

Длинное число с фиксированной точкой

%le – long/float

Длинное число в экспоненциальной форме

%p – pointer

Указатель (16-ричный адрес)

Каждая спецификация преобразования соответствует одному из аргументов, которые следуют за форматной строкой. Управляющие символы имеют вид:

\b – возврат курсора на шаг назад

\f – новая страница

\n – новая строка

\r – возврат коретки

\t – табуляция или перевод курсора в табличную позицию

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

\" – кавычка

\’ – апостроф

\\ – обратная наклонная черта

\ddd – восьмиричный код

\0*dd – 16-ричный код

Список аргументов функции printf() содержит имена переменных, констант или выражения, которые необходимо вывести на экран. Например, при следующей записи на С

printf("%c = %d \n",g, g);

Значение переменной g выводится как символ алфавита, а после знака равенства – как числовое значение, соответствующее машинному коду этого символа. Перед символом преобразования может стоять цифра, явно указывающая количество позиций в выводимой строке, отведенных для элементов вывода:

printf("%c = %5d \n",g, g);

Пример:

#include

#include

main()

{

int age;

float doxod;

age = 23;

doxod = 100;

printf("\n Возраст Андрея – %d. Его доход в $ составляет %.2f", age, doxod);

getch();

}

В данном примере последовательность "возраст Андрея – " будет выведена с новой строки. Символ %d – спецификация для целой переменной age. Вместо этой спецификации в выводимой строке будет подставляться целое число 23. Знак %.2f – спецификация (символ преобразования формата) для вещественного значения переменной доход, а также указание формата для вывода только двух цифр

после десятичной точки. Таким образом, после выполнения программы на экране будет отображено:

Возраст Андрея – 23. Его доход в $ составляет 100.00.

Спецификаторы преобразования

Вид спецификации следующий:

%[флаг][W][D]F

Флаг (–) указывает, что выводимое значение выравнивается в отдельном поле влево, по умолчанию – вправо.

W – число, задающее минимальный размер поля вывода. Если указанного поля для вывода недостаточно,

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

D – указывает количество цифр после запятой для данных вещественных типов float или double. Для строк D задает число печатаемых символов строки поля шириной W.

F – определяет формат преобразования.

Подавление ввода

Спецификация преобразования записывается в виде:

%[флаг][W]F

Флаг (*) – дополнительный признак гашения присваивания, при котором значения пропускаются.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]