Попробуйте часть кода до слова main заменить на #include "stdafx.h" //1 #include <iostream> //2 using namespace std; //3 |
Дополнительные сведения о системе программирования Borland C++ 3.1
12.2. Компилятор bcc.exe
В состав системы программирования включен компилятор командной строки bcc.exe. К его услугам прибегают опытные программисты в тех случаях, когда необходимо создать достаточно большую программу. Под управлением MS-DOS из 640 килобайт задаче доступно максимум 580 – 610 Кб (часть занята компонентами операционной системы и оболочки типа Norton Commander), но интегрированная среда отнимает из этого объема памяти еще порядка 300 Кб.
Командная строка по запуску автономного компилятора имеет следующий вид:
>bcc [ключи] file1 file2 ...
Список ключей, управляющих работой компилятора, приведен в табл.12.2. Для отключения режима надо использовать дополнительный минус после ключа (например -K- вместо -K ).
Обработка файлов, указанных в командной строке, осуществляется по следующим правилам:
- если файл задан с расширением .obj, то он подключается как объектный файл на стадии компоновки исполняемого модуля;
- если файл задан с расширением .lib, то он подключается как библиотека объектных модулей на стадии компоновки исполняемого модуля;
- если файл задан с расширением .asm, то для его компиляции будет вызван транслятор с языка Ассемблер – TASM.EXE.
- файлы без расширений или с расширениями, отличными от перечисленных, рассматриваются как тексты исходных программ, написанных на языках C, C++, и обрабатываются компилятором.
Управление ключами компилятора bcc.exe требует достаточно глубоких профессиональных знаний, поэтому начинающим программистам следует избегать переназначения режимов, действующих по умолчанию.
12.3. Утилита grep.com поиска в текстовых файлах
В состав систем программирования BC 3.1 и BCB входит очень мощная поисковая утилита grep.com. Ее имя образовано от аббревиатуры, которая в ранних руководствах представлялась как Global Regular Expression Print –Печать Глобальных Регулярных Выражений. В новых руководствах предложена более прогрессивная комбинация слов – Generalized Regular Expression Parser – Обобщенный Грамматический Разбор Регулярных Выражений. Так или иначе, в обеих аббревиатурах присутствует термин регулярные выражения. С простейшими представителями регулярных выражений встречался практически каждый программист, который искал или копировал файлы с именами типа *.txt или ?set.txt. В этих именах символ * обозначал цепочку любых символов (в том числе и цепочку нулевой длины), а знак ? заменял любой одиночный символ.
Утилита запускается из командной строки со следующим набором параметров:
>grep [ключи поиска] поисковый_образ область_поиска
Ключи поиска представляют собой одиночные буквы или цепочки букв, которым предшествует символ '–'. Например, –A -D. Вслед за буквой может находиться знак минус (опция отключена) или знак плюс (опция включена). По умолчанию –R эквивалентно –R+. В ключах большие и малые буквы эквивалентны. Смежные ключи могут объединяться в группы: -C -D -I эквивалентно -CDI или -CI -D. В некоторых случаях порядок ключей может оказаться важным, т.к. действия одного могут поглощать действия другого. Список ключей и расшифровка устанавливаемых ими режимов поиска приведены в табл. 12.3.
Ключ | Назначение |
---|---|
-C- | Выводить только количество совпадений в каждом файле без указания номеров строк. Без этой опции номера строк выдаются. |
-D+ | Производить поиск с заходом в подкаталоги. Без указания пути и без ключа -D поиск производится только в текущем каталоге. |
-I+ | Игнорировать разницу между большими и малыми буквами (по умолчанию большие и малые буквы различаются). |
-L- | Выводить только имена файлов, где обнаружен поисковый образ |
-N- | Выводить номера строк в файлах, где обнаружен поисковый образ |
-O- | Выводить сообщения в формате Unix |
-R+ | Искать регулярные выражения |
-U- | Изменить стандартные опции поиска, действующие в GREP по умолчанию, и сохранить новые опции в grep.com |
-V- | Инверсный поиск – выдаются только те строки, в которых поисковый образ не содержится. |
-W- | Поиск слова. По умолчанию слово состоит из букв, цифр и символа подчерк Все остальные символы рассматриваются как разделители слов. |
-Z- | Более подробный вывод – имя файла, число совпадений (даже если оно равно 0) |
Поисковый образ S1S2...Sk может быть представлен просто словом, текстом, заключенным в кавычки (если в поисковом образе есть пробелы или табуляторные пропуски), или регулярным выражением. Если используется ключ -R, то поисковый образ представляет регулярное выражение, в котором присутствуют специальные символы, имеющие следующий смысл:
- "^S1S2...Sk" символ "крышка" (caret) перед поисковым образом означает, что результат поиска должен находиться в начале строки;
- "S1S2...Sk$" символ доллара после поискового образа означает, что результат поиска должен находиться в конце строки;
- . точка заменяет любой символ;
- \ слэш предшествует символу, который ищется (например, \. означает поиск точки);
- * предшествующий символ может встретиться 0 или большее число раз (например, qw* означает поиск q, qw, qww, qwww, ...);
- + предшествующий символ может встретиться 1 или большее число раз (например, qw+ означает поиск qw, qww, qwww, ...);
- [*alpha;1*alpha;2... *alpha;k] должен встретиться хотя бы один из символов, указанных в скобках;
- [^*alpha;1*alpha;2... *alpha;k] не должен встретиться ни один из символов, указанных в скобках;
В поисковом множестве можно задавать диапазоны подряд идущих символов:
- [0-9] все цифры;
- [a-jx -z] малые буквы от a до j, x ,y, z
Очень полезная возможность открывается ключом -u. Вы можете скопировать утилиту grep.com в свой каталог и произвести там нужную настройку режимов поиска с последующим запоминанием удобной для вас комбинации ключей в теле модуля grep. После этого можно уже не набирать эту последовательность ключей при повторных поисках.
Поиск осуществляется среди тех файлов и каталогов, которые указаны в конце командной строки. Например:
>grep -W fun1 *.c *.cpp
В этом случае производится поиск слова fun1 в текущем каталоге среди всех файлов с расширениями .c и .cpp.
>grep -D "my book" \*.doc
В этом случае область поиска – файлы с расширением .doc в корневом каталоге и всех его подкаталогах. Так как поисковый образ содержит пробелы, то он заключен в кавычки.
Для поиска тех или иных идентификаторов в большом количестве программ удобно создать bat-файл, например, с именем grep.bat:
grep.com -i -d -w -n %1 *.c *.cpp > 1.txt
Такой файл запускается по команде:
grep.bat word
Здесь word – искомый идентификатор, он заменит в bat-файле параметр %1. Удобство заключается еще и в том, что результат поиска записывается в файл 1.txt, который можно в дальнейшем детально изучать. Смотреть результаты большого поиска на экране бывает не всегда удобно (да и объем выдаваемой информации может превысить емкость экрана).