Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labor7.doc
Скачиваний:
8
Добавлен:
05.06.2015
Размер:
70.14 Кб
Скачать

Лабораторная работа №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);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]