
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
![]() |
![]() |
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-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!