Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2019-08-01 | 173 |
5.00
из
|
Заказать работу |
|
|
Прототипы:
int fgetc(FILE *stream);
int getc(FILE *stream);
Возвращает: символ, расширенный до int без продолжения знака. В случае ошибки или конца файла возвращает EOF (= -1 = 0xFFFF).
Описание. Считывает очередной символ из входного потока и увеличивает указатель текущего положения (СР - current position) на 1. При вводе с клавиатуры (stream=stdin) выполняется после нажатия клавиши Enter. Макрокоманда getc полностью аналогична функции fgetc. В файле stdio.h определена, как
#define getc(f) ((--((f)->level) >= 0)? (unsigned char)(*(f)-->curp++) \:_fgetc (f))
Разберите синтаксис этого макроса!
Хотя getc и fgetc аналогичны, но лучше пользоваться макросом по следующей причине. Чтение из файла происходит блоками по 256b, 512b и т.д. После обработки одного блока в ОЗУ с диска считывается следующий блок. Макрос работает с текущим блоком напрямую, как видно из определения, и обращается к функции fgetc только после обработки этого блока. Функция fgetc также работает с блоком в ОЗУ, но каждое обращение к нему реализуется через вызов функции. Таким образом, использование getc увеличивает скорость за счет увеличения кода. Использование fgetc уменьшает код ценой уменьшения скорости.
Функция fgetchar и макрокоманда getchar
Прототипы: int fgetchar(void);
int getchar(void);
Возвращает: символ, расширенный до int без продолжения знака. В случае ошибки или конца файла возвращает EOF. Описание. Считывает очередной символ из стандартного входного потока и увеличивает СР на 1. Поток stdin, как и любой открытый файл, имеет буфер с размером по умолчанию 512b. Функция выполняется после нажатия клавиши Enter, после чего вводит 1 символ. Остальные введенные символы остаются в буфере, ожидая своей участи. Макрос getchar аналогичен функции fgetchar.
Функции getch и getche
Прототипы: int getch(void);
|
int getche(void);
Возвращают: символ, расширенный до int без продолжения знака.
Описание. Функция getch выводит символ на монитор, getche - не выводит. Функции имеют буфер на два символа: в случае нажатия
клавиши с расширенным кодом туда записывается 0 и scan-код нажатой клавиши. Не ожидают нажатия Enter. Буфер не очищается даже при повторном запуске программы.
Функция kbhit
Прототип: int kbhit(void);
Возвращает: 1, если к моменту вызова функции была нажата, но не обработана какая-нибудь клавиша; 0-в противном случае.
Описание. Функция оставляет коды нажатой клавиши в буфере ввода-вывода с клавиатуры, так что их можно прочитать, например, с помощью getch.
Функция ungetc
Прототип: int ungetc(int d,FILE*stream);
Возвращает: символ d, посланный обратно во входной поток stream, и EOF в случае ошибки.
Описание. Выталкивает символ d обратно во входной поток stream. Вернуть можно только один символ. Следующее чтение из потока вернет символ d. Символ с расширенным кодом вернуть не удастся.
Функция ungetch
Прототип: int ungetch(int d);
Описание. Аналогична ungetc, но выталкивает символ d обратно в буфер клавиатуры.
Функция fgets
Прототип: char *fgets(char *target, int n, FILE * stream); Описание. Вводит из stream не более n символов в строку по адресу target. Ввод заканчивается при встрече символа \n. Возвращает target при успешном вводе и NULL при встрече конца файла или в случае ошибки.
Функция gets
Прототип: char *gets(char *target);
Описание. Вводит из stdin строку по адресу target. Число вводимых символов не ограничено. В остальном похожа на fgets.
Функция cgets
Прототип: char *cgets(char *target);
Описание. Читает строку из консоли. str[0] должно содержать максимальную длину вводимой строки. По окончании str[l] содержит число реально введенных символов. Введенная строка начинается с элемента str[2]. Для перехода на новую строку в формат нужно вставить два символа: \n\r. Возвращает начало введенной строки str[2].
Функция fputs
Прототип: int fputs(const char *s, FILE *stream);
Описание. Записывает строку в поток. Возвращает последний записанный символ.
Функция puts
Прототип: int puts(const char *s);
Описание. Записывает строку в поток stdout. Возвращает последний записанный символ.
Функция cputs
Прототип: int cputs(const char *s);
Описание. Записывает строку в текстовое окно на экране. Возвращает последний напечатанный символ.
|
|
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!