Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_C-16.doc
Скачиваний:
3
Добавлен:
11.08.2019
Размер:
74.75 Кб
Скачать

Получение значений параметров командной строки

Каждый параметр командной строки при передаче в программу преобразуется в символьную строку. Из этих символьных строк формируется массив, указатель на который является вторым аргументом функции main и обычно называется argv (argument variables).

ЗАДАНИЕ 2 (расширение возможностей программы из задания 1)

Программу задания 1 дополнить следующим образом.

а) Добавить в определение функции main второй аргумент argv.

б) В тело функции main добавить цикл, в котором поочередно выводятся значения параметров из командной строки (т.е. значения элементов массива argv);

Проверить работу программы вначале в отладочном режиме, а затем непосредственно из командной строки.

Замечание

Третий аргумент функции main используется реже, чем первые два. Все программы выполняются в среде, которая формируется операционной системой. Особенности этой среды определяются свойствами, задаваемыми специальными параметрами, называемыми переменными среды. Установленные к моменту запуска программы переменные среды и их значения преобразуются в строки "переменная=значение". Например,

"PATH=C:\;D\BC\USER;".

Их подобных строк формируется массив, который передается функции main через третий аргумент, обозначаемый обычно как env (environment — среда). Количество элементов массива env через аргументы main не передается. Вместо этого как признак конца массива переменных среды используется элемент NULL.

Код возврата программы

Возвращаемое значение функции main передается операционной системе, что позволяет анализировать, успешно или нет была завершена программа. Это важно, когда выполнение нескольких программ связывается в одну цепочку.

При успешном завершении принято возвращать нуль. Ненулевые значения могут свидетельствовать о разных причинах неудачи при выполнении программы.

Есть две основных возможности задавать код завершения программы.

а) Код возврата может задаваться в функции main как значение параметра оператора возврата return. При этом функция main обязательно должна быть описана как возвращающая значение int.

б) Завершить выполнение программы с определенным кодом возврата можно в любом месте с помощью вызова функции exit, определенной в заголовочных файлах stdlib.h и process.h:

void exit(int status);

Значение переменной status задает код возврата при выполнении этой функции. Для этой цели определено две именованных константы, которые нужно использовать для указания успешного и неуспешного завершения программы: EXIT_SUCCESS и EXIT_FAILURE. В этом случае функция main может быть не возвращающей значение (void).

Замечание

Чтобы в отладочном режиме после выполнения программы посмотреть код возврата, нужно выбрать пункт меню Compile | Information и посмотреть значение Program exit code.

Если функция main не возвращает значений (void), то значение кода возврата при использовании return без параметров не определено.

ЗАДАНИЕ 3 (использование аргументов командной строки для передачи данных)

1. Написать программу, для которой исходные данные передаются через параметры

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

а) либо только целыми положительными числами,

б) либо только словами из латинских букв.

В зависимости от типа параметров выполняется разная обработка:

а) если параметры — числа, то подсчитать и напечатать их среднее,

б) если параметры — строки, то напечатать эти строки.

В обоих случаях код возврата программы установить нулевым.

Замечания

а) Тип переданных параметров определять по первому символу первого параметра, используя соответственно предикаты isdigit и isalpha (какой заголовочный файл нужно подключить?).

б) Для преобразования строки в число использовать библиотечную функцию (stdib.h)

int atoi(char* str);

3. Если программе не передано ни одного параметра, то выдается сообщение об ошибке и программой возвращается код 1.

4. Если проверяемый символ не буква и не цифра, то выдается сообщение о недопустимом символе и программа возвращает код 2.

При отладке программу запускать из среды с разными параметрами, проверяя каждый раз код возврата. Затем проверить работу при запуске из командной строки (без контроля кода возврата).

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