Реферат: Средства ввода-вывода в Си++
char * gets (char * s); /* Функция ввода */
int puts (char * s); /* Функция вывода */
Обе функции имеют только один аргумент - указатель s на массив символов. Бели строка прочитана удачно, функция gets( ) возвращает адрес того массива s, в который производился ввод строки. Если произошла ошибка, то возвращается NULL.
Функция puts() в случае успешного завершения возвращает последний выведенный символ, который всегда является символом ‘\n’. Если произошла ошибка, то возвращается EOF.
Форматный ввод-вывод.
Для работы со стандартными потоками в режиме форматного ввода-вывода определены две функции:
printf( ) - форматный вывод;
scanf( ) - форматный ввод.
Прототип функции printf() имеет вид:
int printf(const char *format,...);
При обращении к функции printf() возможны две формы задания первого параметра:
int printf ( *форматная строка, список_аргументов);
int printf (указателъ_на_форматную_строку,. список_аргументов);
В обоих случаях функция printf() преобразует данные из внутреннего представления в символьный вид в соответствии с форматной строкой и выводит их в выходной поток. Данные, которые преобразуются и выводятся, задаются как аргументы функции printf().
Возвращаемое значение функции printf() - число напечатанных символов; а в случае ошибки - отрицательное число.
Форматная_строка ограничена двойными кавычками и может включать произвольный текст, управляющие символы и спецификации преобразования данных. Текст и управляющие символы из форматной строки просто копируются в выходной поток. Форматная строка обычно размещается в списке фактических параметров функции, что соответствует первому варианту вызова функции printf(). Второй вариант предполагает, что первый фактический параметр - это указатель типа char *, a сама форматная строка определена в программе как обычная строковая константа или переменная.
В список аргументов функции printf() включают выражения, значения которых должны быть выведены из программы. Частные случаи этих выражений - переменные и константы. Количество аргументов и их типы должны соответствовать последовательности спецификаций преобразования в форматной строке. Для каждого аргумента должна быть указана точно одна спецификация преобразования.
Если аргументов недостаточно для данной форматной строки, то результат зависит от реализации (от операционной системы и от системы программирования). Если аргументов больше, чем указано в форматной строке, "лишние" аргументы игнорируются. Гарантируется, что при любом количестве параметров и любом их типе после выполнения функций printf() дальнейшее выполнение программы будет корректным.
Спецификация преобразования имеет следующую форму:
% флаги ширина_поля. точностъ спецификатор
Символ % является признаком спецификации преобразования. В спецификации преобразования обязательными являются только два элемента: признак % и спецификатор.
Спецификатор Тип аргумента Формат вывода
d int, char,unsigned Десятичное целое со знаком
u int, char,unsigned Десятичное целое без знака
o int, char,unsigned Восьмеричное целое без знака
x int, char,unsigned Шестнадцатеричное целое без знака; при выводе используются символы “0..9a..f”
X int, char,unsigned Шестнадцатеричное целое без знака; при выводе используются символы "0...9A...F”
f double, float Вещественное значение со знаком в виде:
Знак_числа dddd.dddd
где dddd - одна или более десятичных цифр. Количество цифр перед десятичной точкой зависит от величины выводимого числа, а количество цифр после десятичной точки зависит от требуемой точности. Знак числа при отсутствии модификатора '+' изображается только для отрицательного числа.
Форматный ввод из входного потока.
Форматный ввод из входного потока осуществляется функцией scanf(). Прототип функции scanf( ) имеет вид: