Ниже приведён пример считывания аргументов из командной строки.
/* PrintArgs — выводит аргументы программы в стандартный вывод операционной системы */
#include
#include
#include
using namespace std ;
int main( int nArg , char* pszArgs[ ] )
{
setlocale (LC_ALL,".1251"); /* печать русских текстов */
/* Выводим заголовок */
cout << "Аргументами программы " << pszArgs[ 0 ]
<< " являются\n" ;
/* Выводим аргументы программы */
for ( int i = 1 ; i < nArg ; i++ )
{
cout << i << ": " << pszArgs[ i ] << "\n" ;
}
// Вот и всё
cout << "Вот и всё \n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
_________________
126 стр. Часть 2. Становимся функциональными программистами
Как всегда, функция main( ) получает два аргумента. Первый — переменная типа int , которую я назвал nArg . Эта переменная содержит количество передаваемых программе аргументов. Вторая переменная содержит массив указателей типа char* ; её я назвал pszArgs . Каждый из этих указателей ссылается на один из аргументов программы.
Если запустить программу PrintArgs с аргументами
PrintArgs arg1 arg2 arg3 /w
из командной строки MS DOS, nArg будет равняться 5 ( по количеству аргументов ). Первый аргумент — имя самой программы. Таким образом, pszArgs [ 0 ] будет указывать на имя запускаемого файла, а остальные четыре указателя — на оставшиеся четыре аргумента ( в данном случае это "arg1", "arg2", "arg3" и "/w" ). Поскольку MS DOS никак не выделяет символ / , последний аргумент будет представлять собой строку "/w" .

Аргументы в Dev-C++...127
Для того, чтобы передать аргументы программе при запуске её в среде Dev-C++, можно воспользоваться командой меню Debugs => Parameters ( Отладкам => Параметры ) . Введите нужные вам параметры и запустите программу на выполнение при помощи меню Ехесute => Run ( Выполнить => Выполнить ) либо клавиш .
Аргументы в Windows...127
Windows использует аргументы как средство коммуникации с программой. Проведите следующий эксперимент. Соберите описанную программу и найдите её с помощью Windows Explorer. Например, пусть она имеет имя X:\Cpp_Program\Chap09\PrintArgs.exe . Возьмите произвольный файл и перетащите его на имя файла программы — после этого запустится программа PrintArgs , и вы увидите имя перемещённого файла. Попробуйте перетащить несколько файлов одновременно ( выделив их при нажатой клавише или выделив группу при помощи клавиши ). Программа выведет имена всех перемещённых вами файлов.
Вот как выглядит вывод программы, если перетащить на неё файлы из папки Dev-C++.

Аргументами программы E:\Tmp\PrintArgs.exe являются
1: C:\Dev-Cpp\devcpp.exe
2: C:\Dev-Cpp\copying.txt
3: C:\Dev-Cpp\NEWS.txt
4: C:\Dev-Cpp\Packman.exe
5: C:\Dev-Cpp\uninstall.exe
6: C:\Dev-Cpp\vRoach.exe
7: C:\Dev-Cpp\vUpdate.exe
Вот и всё
Press any key to continue...
Обратите внимание, что каждое имя файла представлено как отдельный аргумент; кроме того, как видите, Windows передаёт в качестве параметра полное имя файла.
_________________
127 стр. Глава 9. Второе знакомство с указателями
Глава 10. ОТЛАДКА ПРОГРАММ НА С++...128
ОГЛАВЛЕНИЕ
В этой главе...
►Определение типа ошибки 128
►Использование отладочной печати 128
►Использование отладчика 134
Не часто случается ( особенно с "чайниками" ), что программа идеально работает с первого раза. Крайне редко удаётся написать нетривиальную программу и не допустить ни одной ошибки.
Чтобы избавиться от ошибок, можно пойти двумя путями. Первый — стереть программу и написать её заново, а второй — найти и исправить ошибки. Освоение первого пути я оставляю читателю, а в этой главе расскажу о том, как выследить и исправить ошибку в программе.
►Определение типа ошибки...127
Можно выделить два типа ошибок: те, которые компилятор может найти, и те, которые не может. Первый тип называют ошибками компиляции ( compile-time error). Их довольно легко найти, поскольку компилятор сам указывает место в программе, где встретилась ошибка. Правда, иногда описание ошибки бывает не совсем точным ( компьютер так легко сбить с толку! ), однако, зная капризы своего компилятора, нетрудно разобраться в его жалобах.
Читать дальше