С++ для начинающих



         

Функция main(): разбор параметров командной строки - часть 4


Слабость нашей реализации становится понятной, если пользователь небрежно относится к пробелам, разделяющим параметры. Скажем, ни одна из следующих двух строк не будет обработана:

prog - d dataOl

prog -oout_file dataOl

(Оба случая мы оставим для упражнений в конце раздела.)

Вот полный текст нашей программы. (Мы добавили инструкции печати для трассировки выполнения.)

#include <iostream>

#include <string>

#include <vector>

#include <ctype.h>

const char *const program_name = "comline";

const char *const program_version = "version 0.01 (08/07/97)";

inline void usage( int exit_value = 0 )

{

  // печатает отформатированное сообщение о порядке вызова

  // и завершает программу с кодом exit_value ...

  cerr << "порядок вызова:\n"

       << program_name << " "

       << "[-d] [-h] [-v] \n\t"

       << "[-o output_file] [-l limit] \n\t"

       << "file_name\n\t[file_name [file_name [ ... ]]]\n\n"

       << "где [] указывает на необязательность опции:\n\n\t"

       << "-h: справка.\n\t\t"

       << "печать этого сообщения и выход\n\n\t"

       << "-v: версия.\n\t\t"

       << "печать информации о версии программы и выход\n\n\t"

       << "-d: отладка.\n\t\t включает отладочную печать\n\n\t"

       << "-l limit\n\t\t"

       << "limit должен быть неотрицательным целым числом\n\n\t"

       << "-o ofile\n\t\t"

       << "файл, в который выводится результат\n\t\t"

       << "по умолчанию результат записывается на стандартный вывод\n\n"

       << "file_name\n\t\t"

       << "имя подлежащего обработке файла\n\t\t"

       << "должно быть задано хотя бы одно имя --\n\t\t"




Содержание  Назад  Вперед