Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов.
За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее.
✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать».
Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами!
Функции ввода/вывода с консольного терминала
Править] Члены-функции
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);
}
|