Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вариант_№21.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
323.58 Кб
Скачать

Int main(void)

{

= 181 =

/* Запрос автоопределения */

int graphdriver = DETECT, gmode, errorcode;

/* инициализация графики и локальных переменных */

Initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */

errorcode = graphresult();

if(errorcode != grOk) /* если ошибка */

{

printf("Ошибка :%s\n",grapherrormessage(errorcode));

printf("Для останова нажмите любую клавишу\n");

getch();

exit(1); /* завершение с кодом ошибки */

}

/* выбрать тип шрифта */

settextstyle(TRIPLEX_FONT,HORIS_DIR,4)

/* переместить CP на начальную позицию */

moveto(0,getmaxy()/2);

/* вывести текст */

outtext("Norm ");

/* сделать его в 1/3 нормальной высоты */

setusercharsize(1,3,1,1);

outtext("Short ");

/* сделать его в 3 раза больше нормальной ширины */

setusercharsize(3,1,1,1);

outtext("Wide ");

/* очистка */

getch();

closegraph();

return 0;

}

setvbuf

Функция Назначает буфер для потока stream.

Синтаксис #include <stdio.h>

void setvbuf(FILE *stream, char *buf, int type,

size_t size);

Файл, содержащий stdio.h

прототип

Описание Функция setvbuf выделяет буфер buf для использова-

ния в операциях ввода/вывода - вместо автомати-

чески выделяемого буфера. Они вызываются только

после того, как данный поток stream будет открыт.

При вызове функции setvbuf, если параметр buf =

= 182 =

NULL, буфер будет выделен посредством malloc; па-

раметр size будет определять объем выделенной па-

мяти. Параметр size определяет размер буфера и

должен быть больше нуля.

Замечание. Параметр size не должен превышать

32767.

Стандартный ввод и вывод stdin и stdout не ис-

пользуют буферов, если они не были переназначены;

в противном случае, ввод и вывод производиться с

буферизацией.

unbuffered (небуферизованный ввод/вывод) означа-

ет, что символы, записываемые в поток, поступают

непосредственно в файл или на устройство; в то

время как buffered (буферизованный ввод/вывод)

означает, что символы накапливаются и затем запи-

сываются, как блок.

Параметр type имеет одно из следующих значений:

_IOFBF Файл использует буферы полностью (fully

buffered). Если буфер пуст, следующая операция

ввода пытается заполнить буфер. Перед тем, как

данные записываются в файл, выводной буфер дол-

жен полностью заполниться.

_IOLBF Файл использует буферы построчно (line

buffered). Когда буфер пуст, следующая операция

ввода пытается его заполнить. Тем не менее, при

выводе буфер будет сброшен, как только в файл бу-

дет записан символ перехода на новую строку.

_IONBF Файл не использует буферов (unbuffered).

Параметры buf и size игнорируются. Каждая операция

ввода будет считывать данные непосредственно из

файла, и каждая операция вывода будет записывать

данные непосредственно в файл.

Наиболее распространенной причиной ошибки являет-

ся размещение буфера, в качестве automatiс (ло-

кальной) переменной и затем попытка закрыть файл

до выхода из функции, в которой был объявлен бу-

фер.

Возвращаемое Функция setvbuf при успешном завершении возвращает

значение 0. Не нуль она возвращает, если параметры type или

size имеют неверные значения; или если для разме-

щения буфера нехватает памяти.

= 183 =

Переносимость Функция поддерживаются на системах UNIX и стан-

дартом ANSI C.

Смотрите также fflush, fopen, setbuf.

Пример:

#include <stdio.h>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]