МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Функции консольного ввода/вывода (уникальны для TC)





Рассматриваемые ниже функции уникальны для компиляторов фирмы Borland. Их прототипы находятся в файле <conio.h>.

Вертикальная позиция курсора в текущем текстовом окне (начиная с 1)

int wherey(void);

 

Горизонтальная текущая позиция курсора в текущем текстовом окне (начиная с 1)

int wherex(void);

 

Позиционирование курсора в текстовом окне

void gotoxy(int x, int y);

 

Установка активного текстового окна

void window(int left, int top, int right, int bottom);

 

Верхний левый угол экрана имеет координаты (1,1). Теперь для ввода доступно только это окно. Внешне это никак не проявляется. Действует на последующие операторы вывода текстовой информации.

Стирание текущего текстового окна

void clrscr(void);

 

Стереть до конца строки в текущем текстовом окне

void clreol(void);

 

Удалить строку в текущем текстовом окне

void delline(void);

 

Вставить пустую строку в текстовое окно в позицию курсора

void insline(void);

 

Строки ниже позиции курсора смещаются вниз, а последняя строка теряется.

 

Выбрать новый цвет фона символа в текстовом режиме

void textbackground(int newcolor);

 

Выбрать новый цвет символа в текстовом режиме

void textcolor(int newcolor);

 

Установить атрибут символа для текстовых функций вывода

void textattr(int newattr);

 

Скопировать текст с текстового экрана в память

int gettext(int left, int top, int right, int bottom,

void *destin);

 

Параметр destin должен указывать на реально существующий буфер памяти, имеющий размер достаточный для размещения фрагмента текста с атрибутами каждого символа. Функция возвращает не ноль при успешном копировании.

Скопировать текст из памяти на текстовый экран

int puttext(int left, int top, int right, int bottom,

void *source);

 

Функция выполняет операцию, обратную к предыдущей. Возвращает не ноль в случае успеха.

Копирует текст на экране с одной прямоугольной области в другую

int movetext(int left, int top, int right, int bottom,

int destleft, int desttop);

 

Возвращает не ноль в случае успеха.

Получить символ с консоли без эха

int getch(void);

Получить символ с консоли с эхом на экране

 

int getche(void);

Вывести символ в текстовое окно

int putch(int ch);

 

Возвратить символ назад в буфер клавиатуры

int ungetch(int ch);

 

Возвращает код символа ch в случае успеха или EOF при ошибке.

Прочитать строку с консоли

char *cgets(char *str);

 

Байт str[0] перед вызовом функции должен содержать максимальную длину строки, допустимую для ввода. После возврата байт str[1] содержит число фактически прочитанных символов. Сама строка начинается с байта str[2]. Функция возвращает адрес прочитанной строки &str[2].

 

Вывести строку в текстовое окно

int cputs(const char *str);

 

Возвращает последний выведенный символ.

Вводит данные с консоли с преобразованию по формату

int cscanf(char *format [, address, ...]);

 

Возвращает число успешно прочитанных полей данных. При попытке прочитать символ конца файла возвращает значение EOF.

 

Выводит данные в текстовое окно с преобразованием по формату

int cprintf(const char *format[, argumet,...]);

 

Возвращает число выведенных байт информации. В отличие от функции printf() использует установки цвета. Не производит автоматического добавления символа '\r' к '\n'.

Функции обработки строк.

Определение длины строки

int strlen(char *str);

 

Символ '\0' в длину строки не входит. Не путать с длиной массива, в котором размещается строка.

Слияние двух строк

char *strcat(char *dest, char *src);



К строке, на которую указывает dest приписываются все символы строки src. Буфер, в котором размещается строка dest должен быть такого размера, чтобы вместить результирующую строку.

Функция возвращает адрес строки dest.

Слияние строки dest с частью строки src

char *strneat(char *dest, char src, int n);

 

К строке, на которую указывает dest приписываются n символов строки src. Буфер, в котором размещается строка dest должен быть такого размера, чтобы вместить результирующую строку.

Функция возвращает адрес строки dest.

 

Функция сравнения двух строк в алфавитном порядке

int strcmp(char *s1, char *s2);

 

Функция возвращает значение больше нуля, если строка s1 больше s2 в смысле алфавитного порядка, меньше нуля, если строка s1 меньше s2, и равное нулю, если строки равны.

 

Функция сравнения части строк

int strncmp(char *s1, char *s2, int n);

 

Работает также как strcmp(), но сравнивает только n символов строк.

 

Функция копирования строки

char *strcpy(char *dest, char src);

 

Строка, на которую указывает src, копируется в буфер, на который указывает dest. Этот буфер должен быть такого размера, чтобы вместить копируемую строку. Функция возвращает адрес строки dest.

 

Функция копирования части строки

 

char *strncpy(char *dest, char src, int n);

 

Часть строки, на которую указывает src, размером n символов копируется в буфер, на который указывает dest. Этот буфер должен быть такого размера, чтобы вместить копируемую строку. Функция возвращает адрес строки dest.

 

Поиск символа в строке

char *strchr(char *str, char c);

 

Функция осуществляет поиск символа c с начала строки, на которую указывает str, и возвращает адрес найденного символа. Если символ не найден возвращает NULL.

 

Поиск символа с конца строки

char *strrchr(char *s, char c);

 

Функция осуществляет поиск символа c с конца строки, на которую указывает str, и возвращает адрес найденного символа. Если символ не найден возвращает NULL.

 

Форматный вывод в строку

int sprintf(char *str, char *format, ...);

 

Функция работает подобно printf(), но вывод вместо консоли осуществляет в буфер, на который указывает str. Его размер должен быть достаточным для того, чтобы вместить всю выводимую информацию. Функция возвращает число выведенных байт.

 

Форматный ввод из строки

int sscanf(char *str, char *format, ...);

 

Функция работает подобно scanf(), но ввод вместо клавиатуры осуществляет из буфера, на который указывает str. Функция возвращает число успешно прочитанных полей данных.

Используя последнюю функцию можно разработать программу для ввода массива данных, заканчивающегося ключевым словом. Фрагмент такой программы приведен ниже

 

#include <string.h>

#include <stdio.h>

 

void main(void)

{

int a[1000]; char buf[81]; int n, goodIO;

for( goodIO = n = 0; n < 1000; n++ )

{

printf("a[%d]=", n); scanf("%s", buf);

if( strcmp(buf, "end") == 0) { goodIO = 1; break; }

sscanf (buf, "%d", &a[n]);

}

if( goodIO )

{

/* ... обработка */

}

}

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.