КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Передача данных потоком
Вопросы для самопроверки Вопросы для самопроверки и контроля Постоянные выражения Постоянные выражения – это выражения, состоящие из литералов и символических констант. Они используются в таких конструкциях языка, как: - многоальтернативный выбор – инструкция switch, опция case; - границы массивов; - директивы препроцессора. Пример. int a[SIZE1+SIZE2]; # define PI 3.141593 # define PI2 2*PI 1. Чему равно значение выражения sizeof (<имя_типа>)? 2. Какой тип должен иметь левый операнд оператора ->? 3. Дано: i=4; y=i++; x=++i. Чему равны значения i, y, x? 4. Какой тип имеет результат выполнения унарного оператора &? 5. Что означают операторы = и == в языке C? Чей приоритет выше? 6. В чем отличие операторов унарного и бинарного оператора &? 7. Какой оператор имеет 3 операнда? Контрольные вопросы 1. Требуется сформировать массив из отрицательных элементов другого массива. Правильно ли предложенное решение? float x[10], y[10], s; short i, k; for (s=k=i=0; i<10; i++){ x[++k]=y[ i ]<0? y[ i ]: 0; } 2. В чем отличие постфиксной и префиксной форм оператора ++? 3. Что означают операторы & и &&? 4. В чем смысл оператора "запятая"? 5. Дано: a=3; b=4; c=5; Чему равно выражение: a<b<c? 6. Где употребляются постоянные выражения?
Этот раздел посвящен дополнительным средствам ввода-вывода в языке C, используемых для ввода-вывода символьной информации. Средства языка Basic для ввода с клавиатуры и вывода на экран и принтер не рассматриваются, поскольку они входят в состав визуальных средств и будут излагаться в последующих курсах программирования. Функции scanf и printf и некоторые другие, о которых речь пойдет ниже, называют функциями передачи данных потоком. Это означает, что все данные, вводимые последовательными инструкциями scanf, образуют единый поток ввода, в котором начало и конец элемента данных определяются параметром соответствующей спецификации w или d либо специальными символами – ограничителями, внесенными в поток. Аналогично последовательность инструкций printf образует единый поток вывода. Проще всего данные каждого потока представить в виде непрерывной символьной строки. В языке определены 3 стандартных потока обмена данных: поток ввода stdin, поток вывода stdout и поток сообщений об ошибках stderr. По умолчанию поток stdin связан с клавиатурой, потоки stdout и stderr – с экраном монитора. На самом деле поток stdin также связан с экраном, поскольку большинство функций ввода отображают каждый вводимый с клавиатуры символ на экран. Точнее эти функции вставляют отображение вводимых символов в поток stdout. Это приводит к очереди за пользование ресурсом (экраном) и иногда к конфликтным ситуациям, описанным ранее. 12.1. Спецификация "s" управляющей строки функций scanf и printf Предназначена для ввода-вывода символьных строк. Напомним, что в языке C определены только строковые литералы, которые представляют собой последовательность символов, завершающуюся нулевым символом. В качестве переменных применяются массивы типа char. Все функции ввода строк добавляют конечный нулевой символ. Ввод. Формат спецификации: % [w]s. Поле ввода ограничивается параметром спецификации w либо символами пробел или перевод строки (клавиша Enter). Пример. %5s [Ивано]в // Будет введен текст, заключенный в [ ] Замечание. Ограничитель ввода остается в потоке и будет восприниматься последующими инструкциями ввода, что может привести к некоторым неожиданным последствиям. Например следующая за функцией scanf функция gets, у которой символ перевод строки является ограничителем, введет пустую строку. Вывод. Формат спецификации %[w][.d]s. Ограничителем является конечный нулевой символ либо параметр d спецификации. Пример. Выводимая строка имеет значение: "Привет, Коля!". На экране получим: %s Привет, Коля! %.6s Привет
Дата добавления: 2014-12-27; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |