Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Часть 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; Просмотров: 215; Нарушение авторского права страницы