Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консольный ввод-вывод.doc
Скачиваний:
5
Добавлен:
24.11.2018
Размер:
79.87 Кб
Скачать

Функция puts

Предназначена для вывода строки. Имеет один параметр, задающий адрес области памяти, из которой на экран выводятся символы. Как уже отмечалось, имя переменной, имеющей строковый тип, является этим адресом. Обращение имеет вид: puts(name)), где name – переменная-строка - имя выводимой строки или строка символов, заключенная в кавычки. После вывода строки курсор перемещается к началу новой строки экрана.

Пример 2.

/* Ввод-вывод с использованием функций getchar, putchar, gets, puts */

#include <stdio.h>

#include <conio.h>

main()

{

char nf[40];

int ch;

clrscr();

puts("**************************");

puts("Введите Ваше имя и фамилию");

gets(nf);

puts("Вас зовут");

puts(nf);

puts("Введите любой символ");

ch=getchar();

puts("Вы ввели символ");

putchar(ch);

puts("**************************");

return(0);

}

Ниже приводится вид экрана (окна Output) после выполнения программы (серым цветом выделены строка и символ, введенные пользователем). Видно, что после выполнения функции puts курсор переводится к началу следующей строки экрана, а после выполнения putchar - не переводится:

**************************

Введите Ваше имя и фамилию

Максим Сидоров

Вас зовут

Максим Сидоров

Введите любой символ

$

Вы ввели символ

$**************************

Функция printf

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

printf(fs,a1,a2,...)),

где fs – форматная строка, a1, a2, ... - список вывода. Например,

printf("Получены значения %d %s\n",g,p).

Здесь "Получены значения %d %s\n" - форматная строка, g,p - список вывода.

Или printf("Вы ввели число").

Здесь нет списка вывода.

Форматная строка может содержать символы, которые будут выведены в том виде, в каком они есть (например: Получены значения), спецификации преобразования, которые начинаются со знака % (например: %d, %s), последовательности переключения кода (escape sequences)(например: \n, что означает перевод курсора на следующую строку).

Спецификация преобразования имеет следующий вид:

%[Флаг][ширина][.Точность][размер]тип

Каждая спецификация заставляет функцию printf, имеющую список вывода, искать следующий элемент списка вывода, который затем преобразуется и выводится в соответствии с заданным преобразованием. Поэтому число элементов списка вывода должно соответствовать числу спецификаций форматной строки в вызове printf. Если printf содержит в качестве аргумента только форматную строку, то просто выводит эту строку.

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

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

Таблица 1. Спецификации преобразования для функции printf

Элемент специфи-кации

Значение

флаг (необязательный элемент)

-

Прижать число при выводе к левому краю выделенного поля

0

Заполнить лишнее пространство нулями вместо пробелов

+

Всегда выводить знак числа (+ или -)

пробел

Пробел на месте знака, если значение положительно

#

Выводить 0 перед восьмеричным или 0x перед шестнадцатеричным значением

ширина (необязательный элемент)

n

Минимальная ширина поля в n символов

точность (необязательный элемент)

.n

Не более n знаков после точки для числа в форме e, E, f

размер (необязательный элемент)

h

Короткое целое (short int)

l

Длинное целое (long int)

тип (тип преобразования)

d

Десятичное целое число со знаком

i

То же, что и d

o

Восьмеричное целое число без знака

u

Десятичное целое число без знака

x

Шестнадцатеричное целое число без знака, цифры в нижнем регистре

X

То же, что х, но цифры в верхнем регистре

f

Число со знаком в форме [-]dddd.dddd

e

Число со знаком в форме [-]d.dddde[+/-]ddd

g

Число со знаком в форме e или f

E

Число со знаком в форме [-]d.ddddE[+/-]ddd

G

Число со знаком в форме E или F

c

Один символ

s

Строка

Еscape- последовательности

Обратная косая черта (\) имеет в языке Си специальное значение. Ее называют escape - символом и применяют для представления символов или чисел, которые нельзя непосредственно ввести с клавиатуры. Еscape-последовательность - это escape символом, за которым следует escape – код. В таблице 2 приведены допустимые в Си escape-последовательности. Еscape- последовательности записываются в форматной строке операторов ввода-вывода и могут произвольно перемешиваться с любыми символами и спецификациями. Например, оператор printf("A\nBC\nDEF\n") выведет на экран символы A,B,C,D,E,F в виде:

A

BC

DEF

Это определяется наличием в форматной строке еscape- последовательности \n - переход к началу новой строки.

Таблица 2. Еscape- последовательности

Последова - тельность

Название

Значение

\n

Новая строка

Переход к началу новой строки

\t

Табуляция

Переход к следующей позиции табуляции

\b

Backspase

Возврат на шаг

\r

Возврат каретки

Возврат к началу текущей строки

\f

Перевод страницы

Начало нового экрана

\v

Вертикальная табулиция

Перевод курсора вниз на несколько строк

\\

Обратная косая черта

Вывод обратной косой черты

\'

Апостроф

Вывод апострофа

\0

Нуль (пусто)

\"

Двойная кавычка

Вывод двойной кавычки

\a

Подача звукового сигнала