Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Направить стандартный поток вывода и стандартный поток ошибок в файл. Другая форма записи: >файл 2>&1. >&-
Закрыть поток вывода перед вызовом команды 2>&-
Закрыть поток ошибок перед вызовом команды cat <<EOF
Весь текст между блоками EOF (в общем случае вместо EOF можно использовать любое слово) будет выведен на экран. Важно: перед последним EOF не должно быть пробелов!
Функция scanf
#include <stdio.h>int scanf(const char * format,...);Функция scanf() представляет собой процедуру ввода общего назначения, которая читает поток stdin и сохраняет информацию в переменных, перечисленных в списке аргументов. Она может читать все встроенные типы данных и автоматически преобразовывать их в соответствующий внутренний формат.
Основным отличием применения функции scanf() от функции printf() является знак & перед именем переменной, в которую записываются результаты ввода.
Функция scanf() может работать сразу с несколькими переменными. Предположим, что необходимо ввести два целых числа с клавиатуры. Формально для этого можно дважды вызвать функцию scanf(), однако лучше воспользоваться такой конструкцией:
scanf(“ %d, %d ”, &n, &m);
Функция scanf() интерпретирует это так, как будто ожидает, что пользователь введет число, затем – запятую, а затем – второе число. Все происходит так, как будто требуется ввести два целых числа следующим образом:
88,221 или 88, 221 Функция scanf() возвращает число успешно считанных элементов. Если операции считывания не происходило, что бывает в том случае, когда вместо ожидаемого цифрового значения вводится какая-либо буква, то возвращаемое значение равно 0.
Для ввода данных в Фортране предусмотрен оператор READ, а для вывода – оператор WRITE. Для вывода данных на стандартное устройство чаще используется оператор PRINT, поскольку формат его записи предполагает, что устройство вывода предопределено.
Список ввода/вывода начинается сразу после закрытия круглых скобок для READ (*,*) и WRITE (*,*) или через запятую после единственной «звездочки» для READ* и WRITE*. В список могут присутствовать скаляры и массивы всех встроенных и производных типов, включая переменные, буквальные и именованные константы и выражения.
В простейшем виде спецификация формата имеет вид:
%ширина_поля.точность спецификатор
Ширина поля - положительное целое число, задающее минимальное количество позиций, занимаемых выводимым значением; если число символов в выводимом значении меньше, чем ширина поля, то выводимое значение дополняется пробелами до минимальной длины; если число символов в выводимом значении больше ширины поля или ширина поля не задана, то печатаются все символы значения (ширина поля игнорируется).
Точность - положительное целое число, указывается в основном для вещественных чисел, означая в этом случае количество выводимых после десятичной точки цифр.
На первых этапах обучения программированию достаточно следующих спецификаторов:
d - для целых значений (типов int, char, unsigned);
f - для вещественных значений (типов float, double);
e - для вещественных значений (типов float, double)с указанием порядка, т. е. в виде:
Список спецификаций определяет формат данных и их расположение во входном потоке при вводе или на строке при выводе.
Спецификации формата начинаются с символа % и заканчиваются символом, определяющим тип выводимого значения. Кроме того, спецификации формата могут содержать символы и цифры для управления видом выводимого значения (подробно см. ниже). Список вывода состоит из переменных и/или констант, значения которых должны быть выведены. Количество спецификаций формата должно быть равно количеству выводимых значений, которые указываются в списке вывода. Если это условие не будет соблюдаться, выполнение функции может привести к непредсказуемым результатам. Ввод осуществляется функцией scanf, которая имеет следующий синтаксис:
scanf (<строка описания форматов> [, <список ввода> ]);
в языке существуют следующие виды констант:
· Еслисписок спецификаций будет исчерпан раньше, чем список ввода-вывода, то перебор элементов списка спецификаций будет повторен, начиная с первого элемента последней группы спецификаций, первого уровня, иными словами - с самой правой открывающей скобки первого уровня. Повторный перебор элементов списка спецификаций, не содержащего повторяемых групп спецификаций, начинается с первого элемента. [ 3 ]
· Еслисписок спецификаций будет исчерпан раньше, чем список ввода-вывода, то перебор элементов списка спецификаций будет повторен, начиная с первого элемента последней группы спецификаций первого уровня, иными словами - с самой правой открывающей скобки первого уровня. Повторный перебор элементов списка спецификаций, не содержащего повторяемых групп спецификаций, начинается с первого элемента. [ 4 ]
· Еслисписок спецификаций формата исчерпан, то спецификации повторяются от начала списка форматов. [ 5 ]
· Элементысписка спецификаций или весь список вместе с окаймляющими скобками как текстовые константы могут быть присвоены переменным или элементам массивов либо с помощью оператора DATA, либо вводом по спецификации А. [ 6 ]
· Элементысписка спецификаций или весь список вместе с окаймляющими скобками как текстовые константы могут быть присвоены переменным или элементам массивов либо с помощью оператора DATA, либо вводом по спецификации А. [ 7 ]
· В этом случаесписок спецификаций вместе с окаймляющими его скобками заносится в виде текстовой константы в заранее зарезервированный массив или присваивается простой переменной. В операторе ввода или вывода вместо метки оператора FORMAT указывается наименование переменной или массива переменных, в котором хранится писок спецификаций. [ 8 ]
· В этом случаесписок спецификаций вместе с окаймляющими его скобками заносится в виде текстовой константы в заранее зарезервированный массив или присваивается простой переменной. В операторе ввода или вывода вместо метки оператора FORMAT указывается наименование переменной или массива переменных, в котором хранится список спецификаций. [ 9 ]
· В одном операторе FORMATсписок спецификаций может содержать коды различных видов. [ 10 ]
· При этом, еслисписок спецификаций закончился, а список переменных еще не исчерпан, то список спецификаций начинает разворачиваться заново, начиная с последней левой скобки. [ 11 ]
· Переход на повторный переборсписка спецификаций сопровождается переходом к новой (следующей по порядку) записи файла. [ 12 ]
· В запись переносится содержимоесписка спецификаций между апострофами. [ 13 ]
· Переход на повторный переборсписка спецификаций сопровождается переходом к новой (следукяцей по порядку) записи файла. [ 14 ]
· В запись переносится содержимоесписка спецификаций между апострофами. [ 15 ]
Дата публикования: 2015-11-01; Прочитано: 183 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!