Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Простейшие функции ввода-выводаСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Язык Си содержит множество стандартных функции ввода–вывода информации (с клавиатуры, на экран, из файла и в него и т.д.). В данной главе рассматриваются только самые простые функции – ввода информации с клавиатуры и вывода на экран: printf, scanf, cprintf, cscanf, getch. Эти функции определены в стандартной и консольной библиотеках: <stdio.h> и <conio.h>. Функция форматированного вывода printf() Назначение и описание функции Функция позволяет вывести информация на экран: простые сообщения, значения переменных и специальные символы (перевод строки, горизонтальная табуляция и т.д.). Функция определяется в библиотеке <stdio.h>. Синтаксис функции: printf(<управляющая строка>, <список переменных>); где <управляющая строка> - строка, которая может содержать: а) простые сообщения, выводимые на экран без изменения, эти сообщения могут содержать произвольные символы, в том числе и на русском языке; б) спецификации формата вывода переменных; в) специальные символы; <список переменных> - перечень идентификаторов переменных, значения которых необходимо вывести на экран. Спецификации формата начинаются с символа %, за которым следует код формата. Перечень основных спецификаций приведен в табл. 3.1. Таблица 3.1.
Специальные символы, приведенные в табл. 2.3, можно использовать для создания новой строки, горизонтальной табуляции подачи звукового сигнала и т.д. Замечание: При использовании функции printf() необходимо быть очень внимательным к соответствию спецификаций форматов в управляющей строке и типов переменных в списке. В противном случае выводимые значения будут существенно отличаться от реальных. Кроме этого, требуется проверять количество вводимых спецификаций и количество переменных в списке – они должны быть равны друг другу. Примеры: 1) Необходимо вывести на экран сообщение «Значения переменных равны:» и далее текущие значения двух целых переменных a и b, вещественной переменной c. После вывода значения переменных a и b необходимо перевести курсор на новую строку. Эта задача выполняется следующим вызовом функции: printf(“Значения переменных равны: %d %d\n%f”,a,b,c); 2) Значения двух вещественных переменных x и y, а также символьной переменной symb необходимо вывести на экран в следующем виде (символы … означают, что здесь будет выведено текущее значение переменной): x=… y=… symb=… т.е. после вывода каждой переменной необходимо выполнить перевод строки. После вывода значений переменных необходимо выдать звуковой сигнал. Эта задача выполняется следующей строкой программы: printf(“ x=%f\n y=%f\n symb=%c\n\a”,x,y,symb); Точность и ширина поля вывода В функции printf() существует возможность задания вывода переменных определенного формата, а именно, можно задавать ширину поля переменных, определять точность вывода вещественных переменных, определять тип выравнивания данных и т.д. В этом случае спецификации формата записывается в такой форме: %[флаг][ширина].[точность]спецификация где флаг – тип выравнивания (пусто – выравнивания по правому краю, `–` – выравнивания по левому краю, `+` – всегда печатать знак числа); ширина – общая длина поля вывода, т.е. общее количество символов при выводе, включая знак и десятичную точку; точность – количество цифр числа после запятой. Примеры спецификаций формата: %12.4f – вывод вещественной переменной с выравниванием по правому краю, общее количество символов при выводе –12 позиций, количество знаков после десятичной точки – 4; %-+10.0f – вывод вещественной переменной с выравниванием по левому краю и обязательным выводом знака числа, общая длина поля вывода – 10 позиций, знаки после десятичной точки не выводятся; %08d – вывод целой переменной с выравниванием по правому краю, ширина поля – 8 позиций, слева число дополняется нулями; %16s – вывод строки, ширина поля вывода – 16 позиций. Функция форматированного ввода scanf() Назначение и описание функции Функция позволяет ввести информация с клавиатуры. Функция определяется в библиотеке <stdio.h>. Синтаксис: scanf(<управляющая строка>, <список адресов переменных>); где <управляющая строка> - строка, которая может содержать только спецификации формата, перечень допустимых значений спецификаций тот же самый, что и для функции printf() (см. табл. 3.1.); <список адресов переменных> – содержит перечисленные через запятую адреса переменных, вводимых функцией. Адрес переменной указывается символом & и далее идет идентификатор переменной, например, адрес переменной flag обозначается символами &flag. Для массивов и строк указывать символ & не обязательно. Замечание: При использовании функции scanf() в управляющей строке нежелательно использовать никаких лишних символов (даже пробелов), кроме спецификаций. Нельзя использовать и специальные символы. Примеры: 1) Ввести с клавиатуры переменные population и age типов длинное целое и вещественное число: scanf(“%ld%f”, &population, &age); 2) Ввести с клавиатуры целую переменную kod в шестнадцатеричном формате, строку name и вещественную переменную двойной точности precision: scanf(“%x%s%lf”, &kod, name, &precision); При вводе нескольких переменных разделителями между ними являются клавиши пробела, табуляции и ENTER. Пример 3.1 Рассмотрим программу, в которой вычисляется значение функции y=sin(x) для двух введенных с клавиатуры значений аргумента. При этом вывод на экран необходимо выполнить в виде следующей таблицы (ширина поля каждой переменной 8 позиций, точность – 4 знака):
Листинг 3.1 /* Программа вычисления функции y=sin(x) */ #include <stdio.h> #include <math.h> void main() { float x1,x2,y1,y2;
printf(“введите два значения аргумента:\n”); scanf(“%f%f”,&x1,&x2); printf(“\n| x | y |”); printf(“\n|––––––––|––––––––|\n”); y1=sin(x1); y2=sin(x2); printf(“|%8.4f|%8.4f|\n”,x1,y1); printf(“|%8.4f|%8.4f|\n”,x2,y2); } Функции консольного ввода-вывода cscanf() и cprintf() Консольная библиотека <conio.h> имеет очень похожие функции ввода-вывода. Отличие состоит в том, что с помощью консольных функций можно задать атрибуты вводимых/выводимых символов: задать положение курсора, изменить цвета фона и символов. Поэтому, например, не имеет смысла использовать некоторые специальные символы при выводе данных на экран (перевод строки, горизонтальная табуляция и т.п.). Синтаксис функций cscanf() и cprintf() идентичен аналогичным функциям библиотеки <stdio.h>. Вспомогательные функции консольной библиотеки Рассмотрим вспомогательные «полезные» функциями консольной библиотеки, используемые вместе с функциями ввода-вывода: 1) очистка экрана clrscr(); 2) задание нового текущего положения курсора на экране gotoxy(x,y); где x, y – координаты нового положения курсора, диапазоны возможных изменения координат следующие x=1…80, y=1…25, координате (1,1) соответствует верхний левый угол экрана; 3) изменение текущего цвета символов (в текстовом режиме): textcolor(c); где c – цвет символов (с=0…15 или цвета в виде макроопределения, например, BLACK, BLUE, GREEN, RED,…YELLOW, WHITE); 4) изменение текущего звена фона под символами (в текстовом режиме): textbackground(c); где c – цвет фона (с=0…7 или цвета в виде макроопределения, например, BLACK, BLUE, …LIGHTGRAY); Пример 3.2 Создадим программу ввода фамилии в окне. С помощью консольных функций необходимо выполнить следующие операции: очистить экран дисплея, в центре экрана вывести изображение окна (цветная рамка с желтым цветом символов и синим цветом фона) размером 20 столбцов на 3 строки, ввести строку в пределах окна. Листинг 3.2 /* Рисование окна и ввод фамилии */ #include <conio.h> void main() { char name[15];/*объявление массива символов для ввода строки*/ clrscr(); /* очистка экрана */ textcolor(YELLOW); /* задание цвета символов */ textbackground(BLUE); /* задание цвета фона */ gotoxy(30,11); /* задание положения курсора */ cprintf(“┌────────────────────┐”); gotoxy(30,12); cprintf(“│ Введите фамилию │”); gotoxy(30,13); cprintf(“│ │”); gotoxy(30,14); cprintf(“└────────────────────┘”); textcolor(CYAN); /* задание цвета символов */ gotoxy(35,13); cscanf(“%s”,name); /* ввод строки */ } Примечание: для ввода программы необходимы символы псевдографики. При их вводе можно использовать коды символов: 218 ┌ 196 ─ 191 ┐
179 │ 179 │
192 └ 196 ─ 217 ┘
|
||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 520; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.43.92 (0.008 с.) |