Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Параметры командной строки

После того, как программа была написана и оттестирована, я заметил, что часто набирать выражения на клавиатуре в стан- дартный ввод надоедает, поскольку обычно использование прог- раммы состоит в вычислении одного выражения. Если бы можно было представлять это выражение как параметр командной стро- ки, не приходилось бы так много нажимать на клавиши. Как уже говорилось, программа запускается вызовом main(). Когда это происходит, main() получает два параметра указывающий число параметров, обычно называемый argc и вектор параметров, обычно называемый argv. Параметры - это символь- ные строки, поэтому argv имеет тип char*[argc]. Имя программы (так, как оно стоит в командной строке) передается в качестве argv[0], поэтому argc всегда не меньше единицы. Например, в случае команды
 
   dc 150/1.1934
параметры имеют значения:
 
   argc 2
 
   argv[0] "dc"
 
   argv[1] "150/1.1934"
Научиться пользоваться параметрами командной строки нес- ложно. Сложность состоит в том, как использовать их без пе- репрограммирования. В данном случае это оказывается совсем просто, поскольку поток ввода можно связать с символьной строкой, а не с файлом (#8.5). Например, можно заставить cin читать символы из стандартного ввода:
 
   int main(int argc, char* argv[])
 
   (*
 
       switch(argc) (*
 
       case 1: // читать из стандартного ввода
 
           break;
 
       case 2: // читать параметр строку
 
           cin = *new istream(strlen(argv[1]),argv[1]);
 
           break;
 
       default:
 
           error("слишком много параметров");
 
           return 1;
 
       *)
 
       // как раньше
 
   *)
Программа осталась без изменений, за исключением добав- ления в main() параметров и использования этих параметров в - 73 - операторе switch. Можно было бы легко модифицировать main() так, чтобы она получала несколько параметров командной стро- ки, но это оказывается ненужным, особенно потому, что нес- колько выражений можно передавать как один параметр: dc "rate=1.1934;150/rate;19.75/rate;217/rate" Здесь кавычки необходимы, поскольку ; является раздели- телем команд в системе UNIX.

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS