
- •Определение алгоритма
- •Классификация языков
- •Модификаторы доступа
- •Объявление переменных
- •Локальные переменные
- •Формальные параметры
- •Глобальные переменные
- •Спецификаторы хранения
- •Оператор присваивания
- •Инициализация переменных
- •Константы
- •Операторы
- •Оператор ?
- •Операторы указания & и *
- •Оператор sizeof
- •Оператор «запятая»
- •Выражения
- •Преобразования типов в выражениях
- •Принудительные преобразования типов
- •Оператор break
- •Оператор continue
- •Метки и goto
- •Одномерный массив
- •Создание указателя на массив
- •Двумерные массивы
- •Массивы строк
- •Многомерные массивы
- •Индексация с помощью указателей
- •Размещение массивов
- •Функции
- •Оператор return
- •Правила видимости для функций
- •Аргументы функции. Передача по значению и передача по указателю
- •Передача массивов в функции
- •Аргументы функции main()
- •Возврат указателей
- •Указатели на функции
- •Структуры
- •Доступ к членам структуры
- •Присваивание структур
- •Массивы структур
- •Указатели на структуры
- •Битовые поля
- •Объединения
- •Перечисления
- •Использование typedef
- •Ввод, вывод, потоки и файлы
- •Форматированный консольный ввод-вывод
- •Модификаторы формата
- •Файловая система ansi c
- •Запись и чтение символа
- •Использование feof()
- •Работа со строками: fgets() и fputs()
- •Указатели
- •Односвязные списки
- •Обход односвязного списка
- •63.Бинарное дерево поиска. Вставка и поиск элемента по ключу в бинарном дереве поиска. Поиск элемента (find)
- •Добавление элемента (insert)
- •64.Бинарное дерево поиска. Удаление элемента из бинарного дерева поиска. Удаление узла (remove)
- •65.Обход бинарного дерева
- •66.Балансировка бинарного дерева поиска
-
Модификаторы формата
Спецификатор минимума ширины поля
Целое число, помещаемое между знаком % и кодом формата, рассматривается как спецификатор минимума ширины поля.
Пример
#include <stdio.h>
int main(void)
{
double item;
item = 10.12304;
printf(“%f\n”, item);
printf(“%10f\n”, item);
printf(“%012f\n”,item);
return 0;
}
Спецификатор точности
Спецификатор точности состоит из точки, за которой следует целое число.
#include <stdio.h>
int main(void)
{
printf(“%.4f\n”, 123.1234567);
printf(“%3.8d\n”, 1000);
printf(“%10.15s\n”, “This is a simple test”);
return 0;
}
В результате получим
123.1235
00001000
This is a simpl
Выровненый вывод
По умолчанию выравнивание по правому краю. Вывод можно выровнять по левому краю, поставив перед символом % знак «минус». Например, спецификатор %-10.2f выравнивает число с двумя знаками после точки по левому краю поля, состоящего из 10 позиций.
Модификаторы * и #
Помещение # перед g, G, f, e или E обеспечивает наличие десятичной точки в случае отсутствия дробной части. Если перед спецификатором o поместить #, то выведенное число будет иметь в начале 0. Если перед спецификаторами формата x или X поставить #, то шестнадцатеричное число будет печататься с префиксом 0x. Нельзя применять # к другим спецификаторам формата.Помимо констант, спецификаторы минимальной ширины поля и точности могут предоставляться аргументами printf(). Для реализации этого следует использовать *.
printf(“%*.*f”, 10, 4, 123.4)
-
Файловая система ansi c
Заголовочный файл stdio.h предоставляет прототипы для функций ввода-вывода и определяет три типа: size_t, fpos_t и FILE. Типы size_t и fpos_t – зависят от адресного пространства (обычно unsigned long). stdio.h также определяет несколько макросов. Наиболее значимые NULL, EOF, FOPEN_MAX, SEEK_SET, SEEK_CUR, SEEK_END.
Имя |
Функция |
fopen() fclose() putc() fputc() getc() fgetc() fseek() fprintf() fscanf() feof() ferror() rewind() remove() fflush() |
Открывает файл Закрывает файл Записывает символ в файл Аналогично putc() Читает символ из файла Аналогично getc() Переходит к указанному байту в файле Делает то же в файл, что и printf() на консоль Делает то же с файлом, что и scanf() c консолью Возвращает истину при достижении конца файла Возвращает истину при обнаружении ошибки Сбрасывает индикатор позиции файла на начало файла Стирает файл Очищает буфер файла |
-
Запись и чтение символа
Запись символа
Система ввода-вывода ANSI С определяет две эквивалентные функции, выводящие символ – putc() и fputc(). Поддержка двух идентичных функций необходима для совместимости со старыми версиями С.
Функция putc() используется для записи символов в поток, ранее открытый функцией fopen(). Прототип для putc() следующий:
int putc(int ch, FILE *fp);
где fp – это указатель на файл, возвращённый fopen( ), а ch – выводимый символ.
Если putc( ) выполнена успешно, она возвращает выведенный символ. В противном случае возвращает EOF.
Чтение символа
Имеется две эквивалентные функции для ввода символа – getc() и fgetc(). Функция getc( ) используется для чтения символа из потока, открытого на чтение с помощью fopen( ). Прототип getc( ) следующий:
int getc(FILE *fp);
где fp – это указатель на файл типа FILE *, возвращенный fopen(). Функция getc( ) возвращает EOF при достижении конца файла. Для чтения текстового файла до конца следует использовать следующий код:
ch = getc(fp);
while( ch != EOF) { ch = getc(fp); }
-
fclose( )
Функция fclose( ) используется для закрытия потока, ранее открытого с помощью fopen( ). Она сохраняет в файл данные, находящиеся в дисковом буфере, и выполняет операцию системного уровня по закрытию файла.
Функция fclose( ) имеет прототип:
int fclose(FILE *fp);
где fp – это указатель на файл возвращённый fopen( ). Если возвращён 0, то операция закрытия была выполнена успешно, а если EOF, то, значит, была ошибка.