- •Лабораторная работа №7 Работа с файловыми потоками в с. Текстовые файлы.
- •Теоретические сведения Форматированный консольный ввод-вывод
- •Файловая система ansi c
- •Указатель на файл
- •Открытие файла
- •Контрольные вопросы:
- •Лабораторное задание.
- •Запись символа
- •Чтение символа
- •Закрытие файла
- •Требования к отчету.
Лабораторная работа №7 Работа с файловыми потоками в с. Текстовые файлы.
Цель работы: получить практические навыки решения задач с использованием текстовых файлов на языке С.
Теоретические сведения Форматированный консольный ввод-вывод
Стандартная библиотека С содержит две функции, выполняющие форматированный ввод и вывод стандартных типов данных: printf() и scanf(). Термин форматированный подразумевает, что эти функции могут читать или писать данные в различных форматах, которыми можно управлять. Функция printf() используется для вывода данных на консоль, scanf() – для чтения данных с консоли. Как printf(), так и scanf() могут работать с любыми стандартными типами, включая символы, строки и числа.
Функция printf() имеет следующий прототип:
int printf(const char * форматная_строка, …);
Первый аргумент форматная_строка определяет способ вывода последующих аргументов. Он содержит два типа элементов: символы, выводимые на экран, и спецификаторы формата, определяющие способ вывода аргументов, следующих за форматной строкой. Спецификаторы формата приведены в таблице 1.
Таблица 1
Код %c %d %i %e %E %f %g
%G
%o %s %u %x %X %p %n
%% |
Формат Символ Знаковое десятичное целое число Знаковое десятичное целое число Научная нотация (e – строчная) Научная нотация (E – строчная) Десятичное число с плавающей точкой Использует или %e, или %f, соответствующее более короткому представлению Использует или %E, или %f, соответствующее более короткому представлению Беззнаковое восьмеричное число Строка символов Беззнаковое десятичное число Беззнаковое шестнадцатиричное число (строчные буквы) Беззнаковое шестнадцатиричное число (прописные буквы) Вывод указателя Ассоциированный аргумент – это указатель на целое, в которое записывается число уже выведенных символов Выводит знак % |
Функция printf() возвращает число напечатанных символов. В случае ошибки она возвращает EOF.
Стандартный ввод с консоли, как правило, осуществляется с помощью scanf(). Она читает все стандартные типы данных и автоматически преобразует числа к правильному внутреннему формату. Стандартный вид scanf() следующий:
int scanf(const char * форматная_строка, …);
форматная_строка определяет способ чтения значений в переменные, на которые указывает список аргументов. Форматная строка состоит из трёх типов символов:
Спецификаторы формата
Специальные символы
Стандартные символы
Спецификаторы формата перечислены в таблице 2.
Таблица 2
Код %c %d %i %e %f %g %o %s %x %p %n %u %[] |
Значение Читает одиночные символы Читает десятичное число Читает десятичное число Читает число с плавающей запятой Читает число с плавающей запятой Читает число с плавающей запятой Читает восьмеричное число Читает строку Читает шестнадцатиричное число Читает указатель Получает целочисленное значение, равное числу прочитанных символов Читает беззнаковое целое Сканирует множество символов |
В scanf() следует передавать адреса. Это означает, что все аргументы должны быть указателями на переменные. Например, для чтения целого в переменную count надо использовать следующий вызов scanf():
scanf(“%d”, &count);
