Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Часть II. Становимся программистами. Case               =. Case 1: pszReturnValue = "Январь"; break




case 1: pszReturnValue = "Январь"; break;

case               =

break;

case               = "Март";

break;

// и так

= "Неверный номер месяца"

 

return pszReturnValue;

 

 

Оператор switch {> действует так же, как совокупность операторов if.

 

 

Эту задачу можно решить более элегантно, использовав номер месяца как индекс в массиве указателей, представляющих названия месяцев. Тогда программа приобре- тет такой вид:

//                     () — возвращает название месяца char*

{

// проверка правильности номера месяца if    <  1   nMonth > 12)

{

 

}

 

// r.Month имеет корректное значение

//               имя месяца

[ ] = ( "Ошибка" ,

 

"Февраль", "Март",

"Апрель",

"Май",

"Июнь",

"Июль",

"Август",

 

 

"Декабрь"};

retur n

}

Сначала в этой программе проверяется корректность аргумента nMonth, т.е. что его значение лежит в диапазоне между 1 и 12 включительно (в предыдущей программе про- верка производилась, по сути, оператором Если значение nMonth правильное, оно используется как смещение внутри массива, содержащего названия месяцев.

Доступ к аргументам main ()

Второй аргумент функции main () — массив указателей на строки. Эти строки со- держат аргументы, передаваемые программе при вызове. Допустим, я ввел следующее в командной строке MS DOS:

 

 

Глава 9. Второе знакомство с указателями                                 107


MS DOS запустит программу, которая находится в файле MyProgram.exe, и пере- даст ей как аргументы file.tx t и /w.  Аргументы, начинающиеся с косой черты (/) или дефиса (-), обрабатываются операционной системой, как и любые другие: они передаются программе, чтобы та разбиралась с ними сама. Аргументы, которые начи- наются с <, >, >> или | ! (а иногда и некоторые другие), представляют особый интерес для операционных систем и программе не передаются.

Аргументы программы являются одновременно аргументами функции main (). Пе- ременная  pszArgs, передаваемая О, содержит массив указателей на аргументы программы, a nArgs — их количество.

Ниже приведен пример считывания аргументов из командной строки.

// PrintArgs — выводит аргументы программы

//       в стандартный вывод операционной системы

 

 

int     nArg, char*

{

// печатает начальную строку

cout << "Аргументами программы " << pszArgs  « "        ;

// Выводит аргументы программы for (int i = 1; i < nArg; i++)

{

cout << i << ": " «         « "\n";

}

// вот и все

cout << "Вот и все \п"; return 0;

 

Как  всегда,  функция                 получает два аргумента. Первый — переменная типа int , которую я назвал nArgs. Эта переменная содержит количество передаваемых программе аргументов. Вторая переменная содержит массив указателей типа char*; ее я назвал pszArgs. Каждый из этих указателей ссылается на один из аргументов программы.

Если запустить программу PrintArgs с аргументами PrintArgs  arg2 arg3 /w

из командной строки MS DOS, nArgs будет равняться 5 (по количеству

Первый аргумент — имя самой программы. Таким образом, pszArgs [0] будет указы- вать на имя запускаемого файла, а остальные четыре указателя на оставшиеся че- тыре аргумента (в данном случае это      ...). Поскольку MS DOS никак не выделяет символ /, последний аргумент будет представлять собой строку "/w".

 


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 213; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.01 с.)
Главная | Случайная страница | Обратная связь