- •Лабораторная работа №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()следующий:
intscanf(constchar*форматная_строка,…);
форматная_строкаопределяет способ чтения значений в переменные, на которые указывает список аргументов. Форматная строка состоит из трёх типов символов:
Спецификаторы формата
Специальные символы
Стандартные символы
Спецификаторы формата перечислены в таблице 2.
Таблица 2
Код %c %d %i %e %f %g %o %s %x %p %n %u %[] |
Значение Читает одиночные символы Читает десятичное число Читает десятичное число Читает число с плавающей запятой Читает число с плавающей запятой Читает число с плавающей запятой Читает восьмеричное число Читает строку Читает шестнадцатиричное число Читает указатель Получает целочисленное значение, равное числу прочитанных символов Читает беззнаковое целое Сканирует множество символов |
В scanf() следует передавать адреса. Это означает, что все аргументы должны быть указателями на переменные. Например, для чтения целого в переменнуюcountнадо использовать следующий вызовscanf():
scanf(“%d”, &count);