Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
[ Советы ]
Доступ к аргументам main( )...126
Второй аргумент функции main( ) — массив указателей на строки. Эти строки содержат аргументы, передаваемые программе при вызове. Допустим, я ввёл следующее в командной строке MS DOS:
MyProgram file.txt /w
MS DOS запустит программу, которая находится в файле MyProgram.ехе , и передаст ей как аргументы file.txt и /w . Аргументы, начинающиеся с косой черты ( / ) или дефиса ( - ), обрабатываются операционной системой, как и любые другие: они передаются программе, чтобы та разбиралась с ними сама. Аргументы, которые начинаются с <, >, >>или ||( а иногда и некоторые другие ), представляют особый интерес для операционных систем и программе не передаются.
Аргументы программы являются одновременно аргументами функции main( ) . Переменная pszArgs , передаваемая main( ) , содержит массив указателей на аргументы программы, a nArg — их количество.
Ниже приведён пример считывания аргументов из командной строки.
/* 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 . Каждый из этих указателей ссылается на один из аргументов программы.
Аргументы в DOS...127
Если запустить программу 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. Второе знакомство с указателями
ОГЛАВЛЕНИЕ
В этой главе...
►Определение типа ошибки 128
►Использование отладочной печати 128
►Использование отладчика 134
Не часто случается ( особенно с "чайниками" ), что программа идеально работает с первого раза. Крайне редко удаётся написать нетривиальную программу и не допустить ни одной ошибки.
Чтобы избавиться от ошибок, можно пойти двумя путями. Первый — стереть программу и написать её заново, а второй — найти и исправить ошибки. Освоение первого пути я оставляю читателю, а в этой главе расскажу о том, как выследить и исправить ошибку в программе.
►Определение типа ошибки...127
Можно выделить два типа ошибок: те, которые компилятор может найти, и те, которые не может. Первый тип называют ошибками компиляции ( compile-time error). Их довольно легко найти, поскольку компилятор сам указывает место в программе, где встретилась ошибка. Правда, иногда описание ошибки бывает не совсем точным ( компьютер так легко сбить с толку! ), однако, зная капризы своего компилятора, нетрудно разобраться в его жалобах.
Ошибки, которые компилятор не может найти, проявляются при запуске программы и называются ошибками времени исполнения ( run-time error). Их найти намного труднее, поскольку, кроме сообщения об ошибке, нет и намёка на то, какая именно ошибка возникла и где ( сообщения, которые генерируются при возникновении ошибок выполнения, вполне достойны "звания" ошибочных ).
Для выявления "жучков" в программе обычно используется два метода. Первый — добавить отладочные команды, выводящие ключевые значения в ключевых точках программы. Увидев значения переменных в месте возникновения ошибки, можно понять, что именно неправильно в данной программе. Второй метод заключается в использовании специальной программы — отладчика. Отладчик позволяет отслеживать процесс выполнения программы.
►Использование отладочной печати...128
Добавление команд вывода в ключевых точках помогает понять, что происходит в программе, и называется методом отладочной печати ( иногда именуемым WRITE ). Метод WRITE появился во времена, когда программы писались на языке FORTRAN, в котором вывод осуществляется с помощью команды WRITE.
Читать дальшеИнтервал:
Закладка: