Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2019-08-01 | 171 |
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);
Описание. Записывает строку в текстовое окно на экране. Возвращает последний напечатанный символ.
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!