
- •Руденко т.В. Сборник задач и упражнений по языку Си. ( учебное пособие для студентов II курса )
- •Предисловие
- •Типы, операции, выражения
- •Управление
- •3.1 Синтаксис и семантика операторов языка Си
- •Обработка числовых данных
- •Обработка символьных данных
- •Функции и структура программы
- •Указатели и массивы
- •Структуры, объединения
- •6.1 Основные сведения
- •6.2 Структуры и функции. Указатели на структуры.
- •6.3 Структуры со сылками на себя
- •Ввод-вывод
- •7.1 Стандартный ввод-вывод
- •7.2 Работа с файлами
- •Интерфейс с системой unix
- •Низкоуровневый ввод-вывод
- •Процессы, сигналы
- •8.2.1 Конвейер, перенаправление ввода-вывода
- •8.2.2 Сигналы. Фоновые процессы.
- •Задания практикума
- •Свойства транслятора
- •Калькулятор
- •Моделирование работы интерпретатора shell
- •Приложения
- •Библиотека стандартных функций языка с
- •Функции работы со строками
- •Функции проверки класса литер
- •Ввод-вывод
- •Операции над файлами
- •Форматный вывод
- •Литеры-спецификаторы и их смысл при выводе
- •Форматный ввод
- •Литеры-спецификаторы и их смысл при вводе
- •Функции ввода-вывода литер
- •Функции позиционирования файла
- •Математические функции
- •Функции общего назначения
- •Дальние переходы
- •10.2 Фрагменты стандарта языка Си
- •10.2.1 Классификация типов
- •10.2.2 Приоритеты и порядок выполнения операций
- •10.2.3 Арифметические преобразования при выполнении арифметических операций вида X op y
- •10.2.4 Арифметические преобразования при выполнении присваивания и явного приведения
- •10.2.6 Явное приведение ( тип т ) X
- •10.2.7 Адресная арифметика
- •10.3 Системные функции unix
- •10.3.1 Базисные средства ввода-вывода
- •10.3.2 Дополнительные средства ввода-вывода
- •10.3.3 Процессы, транспортеры, сигналы
- •Литература
- •Содержание
Функции ввода-вывода литер
int fgetc (FILE *stream)
fgetc возвращает очередную литеру из потока stream в виде unsigned char, переведенной в int, или EOF, если исчерпан файл или обнаружена ошибка.
char *fgets (char *s, int n, FILE *stream)
fgets читает не более n-1 литер в массив s, прекращая чтение, если встретилась литера новая-строка, которая включается в массив; кроме того, записывает в массив литеру ‘\0’. Функция fgets возвращает s или NULL, если исчерпан файл или обнаружена ошибка.
int fputc ( int c, FILE * stream)
fputc пишет литеру c, переведенную в unsigned char, в stream. Возвращает записанную литеру или EOF в случае ошибки.
int fputs (const char *s, FILE * stream)
fputs пишет строку s, которая может не иметь ‘\n’, в stream. Возвращает неотрицательное целое или EOF.
int getc (FILE *stream)
getc делает то же, что и fgetc, но в отличие от нее может быть макросом; в этом случае stream может быть вычислен более одного раза.
int getchar (void)
getchar() делает то же, что и getc(stdin).
char *gets (char *s)
gets читает следующую строку ввода в массив s, заменяя литеру новая-строка на ‘\0’. Возвращает s или NULL, если исчерпан файл или обнаружена ошибка.
int putc (int c, FILE *stream)
putc делает то же, что и fputc, но в отличие от нее может быть макросом; в этом случае stream может быть вычислен более одного раза.
int putchar (int c)
putchar(c) делает то же, что и putc(c,stdout).
int puts (const char *s)
puts пишет строку s и литеру новая-строка в stdout. В случае ошибки возвращает EOF; если запись прошла нормально - неотрицательное значение.
int ungetc (int c, FILE *stream)
ungetc отправляет литеру c (переведенную в unsigned char) обратно в stream; при следующем чтении из stream она будет получена снова. Для каждого потока можно вернуть не более одной литеры. Нельзя возвращать EOF. В качестве результата ungetc выдает отправленную назад литеру или, в случае ошибки, EOF.
Функции позиционирования файла
int fseek (FILE *stream, long offset, int origin)
fseek устанавливает позицию для stream; последующее чтение или запись будет производиться с этой позиции. Новая текущая позиция устанавливается со смещением offset относительно положения, заданного значением origin. Если origin равно 0 то смещение производится относительно начала файла; если origin равно 1, то относительно прежней текущей позиции; и относительно конца файла, если origin равно 2. Значение offset должно быть равно нулю или значению, полученному при помощи функции ftell. Это единственный надежный способ получения величины offset для функции fseek.
long ftell (FILE *stream)
ftell возвращает текущее значение смещения в байтах относительно начала потока stream или -1L, в случае ошибки.
void rewind (FILE *stream)
rewind(fp) делает то же, что и fseek(fp,0L,SEEK_SET); clearerr(fp).
int fgetpos (FILE *stream, fpos_t *ptr)
fgetpos записывает текущую позицию потока stream в *ptr для последующего использования ее в fsetpos. Тип fpos_t позволяет хранить значения такого рода. В случае ошибки fgetpos возвращает ненулевое значение.
int fsetpos (FILE *stream, const fpos_t *ptr)
fsetpos устанавливает позицию в stream, читая ее из *ptr, куда она была ранее записана с помощью fgetpos. В случае ошибки fsetpos возвращает ненулевое значение.
int feof (FILE *stream)
feof возвращает ненулевое значение, если для потока stream установлен индикатор конца файла.
void clearerr (FILE stream)
clearerr очищает индикаторы конца файла и ошибки потока stream.