Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Функции ввода/вывода с консольного терминала






    Править] Члены-функции

    int kbhit(void) Определяет, было ли нажатие клавиш клавиатуры
    int ungetch(int c) Помещает символ c обратно в буфер клавиатуры.
    int getch(void) Считывает символ напрямую из консоли без использования буфера и echo-вывода.
    int getche(void) Считывает символ напрямую из консоли без использования буфера, но с использованием echo-вывода.
    int putch(int c) Функция _putch выводит символ c в консоль без буферизации. В случае успеха возвращает c. В противном случае возвращает EOF.
    char *_cgets(char *buffer) Считывает строку из консоли и хранит ее в массиве, указывающим на буфер. buffer[0], должен содержать максимальную длину (в символах) строки, то есть сколько символов нужно считать. Второй элемент массива buffer[1] указывает «где». _cgets хранит текущую длину строки. _cgets считывает символы до символа возврата, перевода строки или указанного максимума числа символов.
    int _cprintf(const char *format, arg0,... argn) Форматирование и вывод («печать») строки напрямую в консоль.
    int _cputs(const char *string) Вывод строки напрямую в консоль.
    int _cscanf(char *format, arg0,... argn) Считывание и форматирование данных напрямую из консоли.

     

    Функции ввода/вывода с консольного терминала

    Функции ввода/вывода для консоли используют специфические особенности IBM‑ совместимого компьютера, такие как наличие специального видеоадаптера, и не являются переносимыми на другие типы компьютеров. Прототипы функций содержатся в файле conio.h. Консольные функции позволяют читать и записывать строки (cgets и cputs), форматированные данные (cscanf и cprintf) и отдельные символы. Функция kbhit определяет, было ли нажатие клавиши и позволяет определить наличие символов для ввода с клавиатуры до попытки чтения.

    Во‑ первых, существуют функции для работы с окном консоли, аналогичные библиотеке Crt Паскаля. В табл. 8.13 кратко перечислены основные из них.

     

    Таблица 8.13. Функции для работы с окном консоли

    Функция Краткое описание
    window void window(int left, int top, int right, int bottom); Устанавливает текущее окно консоли по указанным координатам
    clrscr void clrscr(void); очищает текущее окно
    clreol void clreol(void); очищает текущую строку окна от позиции курсора до конца
    delline void delline(void); удаляет строку окна, в которой установлен курсор
    insline void insline(void); вставляет пустую строку в позиции курсора
    gotoxy void gotoxy(int x, int y); перемещает курсор в указанные столбец (x) и строку (y) окна
    textbackground void textbackground(int newcolor); устанавливает указанный фоновый цвет окна. Цвета указываются номерами 0‑ 15 или названиями, определенными в conio.h (BLUE, GREEN и т. д.)
    textcolor void textcolor(int newcolor); устанавливает указанный цвет вывода текста в окне. Цвета указываются аналогично функции textbackground
    wherex int wherex(void); возвращает номер столбца окна, в котором находится курсор
    wherey int wherey(void); возвращает номер строки окна, в которой находится курсор

     

    Во‑ вторых, в файле conio.h описаны прототипы ряда специфичных для Си функций (см. табл. 8.14).

     

    Таблица 8.14. Функции ввода/вывода для консоли

    Функция Краткое описание
    cgets char *cgets(char *str); чтение строки с консоли до комбинации CR/LF или достижения максимально возможного числа символов. Если cgets читает комбинацию CR/LF, она заменяет ее на нулевой байт перед сохранением строки. Перед вызовом функции str[0] должен быть установлен в максимально возможное число символов для чтения. В случае успеха str[1] содержит реально прочитанное число символов, возвращается указатель на str[2]. При чтении комбинации CR/LF она заменяется нулевым байтом. Нулевой байт добавляется в конец строки. Таким образом, длина буфера должна быть не меньше str[0]+2 байт.
    cprintf int cprintf(const char *format[, argument,...]); запись данных на консольный терминал по формату. Требования к строке формата и последующим аргументам аналогичны функции fprintf. Не переводит '\n' (символ LF) в пару символов '\r\n' (CR/LF). В случае успеха вернет число выведенных символов, в случае ошибки - EOF.
    cputs int cputs(const char *str); вывод строки в текущее окно консольного терминала, определенное по умолчанию или функцией window. Не добавляет символов новой строки.
    getch int getch(void); чтение символа с консоли. Символ не отображается на экране (нет эхо‑ печати). Вернет код символа.
    getche int getche(void); чтение символа с консоли с эхо‑ печатью. Вернет код символа.
    kbhit int kbhit(void); проверка нажатия клавиши на консоли. Пример: while (! kbhit()) /*до нажатия клавиши */; cprintf(" \r\nНажата клавиша...");
    putch int putch(int c); Вывод символа на консольный терминал. Не переводит '\n' (символ LF) в пару символов '\r\n' (CR/LF). В случае успеха вернет символ, в случае ошибки - EOF
    ungetch int ungetch(int ch); возврат последнего прочитанного символа с консольного символа обратно с тем, чтобы он стал следующим символом для чтения. Ограничения те же, что для ungetc.

    Приведенный ниже пример демонстрирует чтение строки с помощью функции cgets.

    char buffer[83];

    char *p;

    /* Место для 80 символов + нулевого байта */

    buffer[0] = 81;

    printf(" Введите строку: ");

    p = cgets(buffer);

    printf(" \ncgets прочитала %d \

    символов: \" %s\" \n", buffer[1], p);

    printf(" Возвращен указатель %p, \

    buffer[0] содержит %p\n", p, & buffer);

    В следующем примере строка текста печатается в центре стандартного окна консоли.

    #include < conio.h>

    int main(void){

    clrscr();

    gotoxy(35, 12);

    textcolor (RED);

    cprintf(" Hello world");

    getch();

    return 0;

    }

    Наконец, приведенный далее код демонстрирует обработку нажатий клавиш для консольного терминала.

    #include < stdio.h>

    #include < conio.h>

    int main(void) {

    int ch;

    do {

    ch=getch();

    if (ch=='\0') { //расширенный код

    ch=getch();

    switch (ch) {

    case 72: printf (" \nUp"); break;

    case 80: printf (" \nDown"); break;

    case 75: printf (" \nLeft"); break;

    case 77: printf (" \nRight"); break;

    default: printf

    (" \nExtended key %2d", ch); break;

    }

    }

    else {

    switch (ch) {

    case 13: printf (" \nEnter"); break;

    case 27: printf (" \nEsc"); break;

    default: printf (" \nKey %4d", ch);

    break;

    }

    }

    } while (ch! =27);

    }

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.