Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy_LR3.docx
Скачиваний:
25
Добавлен:
18.02.2018
Размер:
33.74 Кб
Скачать

5. Какие спецификации форматов ввода-вывода данных имеют функции scanf() и printf()? Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?

В простейшем виде спецификация формата имеет вид:

%[ширина_поля][.точность] [спецификатор]

Ширина поля - положительное целое число, задающее минимальное количество позиций,

занимаемых выводимым значением; если число символов в выводимом значении меньше, чем

ширина поля, то выводимое значение дополняется пробелами до минимальной длины; если число символов в выводимом значении больше ширины поля или ширина поля не задана, то печатаются все символы значения (ширина поля игнорируется).

Точность - положительное целое число, указывается в основном для вещественных чисел, означая

в этом случае количество выводимых после десятичной точки цифр.

Спецификаторы формата:

%с символ

%d целое десятичное число

%e десятичное число в виде x.xx e+xx

%f десятичное число с плавающей запятой xx.xxxx

%G десятичное число с плавающей запятой xx.xxxx, но с отбрасыванием нулей

%s строка символов

%p указатель

Функция форматного ввода scanf()

Оператор вызова этой функции имеет вид:

scanf(форматная_строка, список_ввода)

scanf("%d%f", &i, &a);

printf("Переменная x = %.3f",x);

Каким образом организовывать ввод данных для поддержки программной обработка неправильно введенных данных?

Это можно сделать при помощи флага.

Например

flag=scanf("%d",&a)

Функция scanf возвращает 0 при неправильном вводе и 1 при правильном.

Далее с помощью функции if делаем проверку и в случае неправильного ввода выводим ошибку.

6. Перенаправление потоков ввода-вывода. Как можно сформировать файл с исходными данными? Потоковые функции для работы с текстовыми файлами fprintf() и fscanf(), их использование для файлового ввода-вывода.

+ 7. Как вывести результат работы программы в файл?

Поток – это программный канал для обмена данными между приложением и ОС или другим

приложением. Потоки бывают входные, выходные и двунаправленные.

Команды и сценарии могут получать входные данные двумя способами: из стандартного входного

потока (связан с клавиатурой) или из файла. Аналогичное разделение существует и при выводе

данных: результаты работы команды или сценария по умолчанию направляются на экран

терминала, но можно перенаправить их в файл.

Операция открытия файла связывает поток с определённым файлом, операция закрытия

разрывает эту связь. Каждый поток, связанный с файлом, имеет управляющую структуру типа

FILE. Указатель на данную структуру, называемый также указателем на файловую переменную,

является связующим звеном между потоком и файлом, работа с потоком, а значит, и со

связанным с ним файлом, осуществляется через связанный с потоком указатель на файловую

переменную. Работа с потоком, который не связан ни с каким файлом, либо невозможна, либо

может привести к неправильной работе как программы, так и системы в целом.

FILE * fopen (const char * path, const char * mode);

Функция открывает файл, имя которого принимает в качестве параметра path, и связывает его с

потоком. В случае успеха функция возвращает указатель на файловую переменную, в случае

ошибки – NULL. Параметр mode задает режим открытия файла.

Режим Действие

«r» Открыть существующий файл для чтения (файл должен существовать на диске).

«w» Открыть существующий (содержимое при открытии теряется) или создать новый файл

для записи.

«a» Открыть существующий или создать новый файл для добавления (запись в конец файла).

Потоковые функции для работы с текстовыми файлами fprintf() и fscanf(), их использование для

файлового ввода-вывода.

Функции fscanf() и fprintf() осуществляют форматированный ввод и вывод соответственно

в поток (в файл).

Основное отличие от scanf() и printf() состоит в том, что нам нужно использовать указатель типа

FILE , чтобы сообщить функциям с каким файлом им следует работать.

fscanf(outFile,"%d",&a)

Открытие файла: fopen( )

Функцией fopen( ) управляют три основных параметра.

fopen("File", "r")

Первый - имя файла, который следует открыть. В нашем примере это "File". Второй параметр описывает, как должен использоваться файл:

"r" - файл нужно считать,

"w" - файл нужно записать,

"a" - файл нужно дополнить.

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