![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 527; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.27.24 (0.012 с.) |