Проблема с C++

Автор: kost Дата: 19.04.2004 15:14 У меня такой вопрос - как использовать аргументы функции main()? Я пробовал вот так:
#include <iostream>
using namespace std;

int main(int nArg, char **pszArgs[])
{
if (nArg != 2) cout << "Нет аргумента" << " ";
else
{
cout << pszArgs[1] << " ";
if(pszArgs[1] == "--help";-) cout << "Helper" << " ";
}
}
Но если я задаю параметр --help ни в какую не выводится "Helper". Вывод cout << pszArgs[1] показывает --help. Так почему этот код не работает?
Re: Проблема с C++ 20.04.2004 13:36ShaMAN А что разве в C можно сравнивать строки простым оператором == ? может всё таки strcmp ?
Re: Проблема с C++ 21.04.2004 03:52usr а если stl уже подключен - то тогда уж
if(string (pszArgs[1]) == "--help";-) cout << "Helper" << " ";

а в чистом С (хотя тут всетаки С++:-) конечно strcmp
Re: Проблема с C++ 21.04.2004 03:54usr только надо еще не забыть добавить строчку
#include <string>
Re: Проблема с C++ 21.04.2004 13:50zabivailo Надо так:
int main(char ArgC, char* ArgV[])
{
...
}

В ArgC - количество параметров, в ArgV - параметры. Притом ArgV[0] - команда запуска программы (кажется).
Re: Проблема с C++ 22.04.2004 14:141ex "Чистый С"? Лучше пользоваться GNU-тым С! Улыбка
Так-так, опять велосипед избретаем, но есть приятная новость - он уже давно изобретен! Улыбка
---
Example of Parsing Long Options with `getopt_long'
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>

static int verbose_flag;

int main (argc, argv)
int argc;
char **argv;
{
int c;
while (1) {
static struct option long_options[] = {
/* These options set a flag. */
{"verbose", no_argument, &verbose_flag, 1},
{"brief", no_argument, &verbose_flag, 0},
/* These options don't set a flag.
We distinguish them by their indices. */
{"add", no_argument, 0, 'a'},
{"append", no_argument, 0, 'b'},
{"delete", required_argument, 0, 'd'},
{"create", required_argument, 0, 'c'},
{"file", required_argument, 0, 'f'},
{0, 0, 0, 0}
};
/* `getopt_long' stores the option index here. */
int option_index = 0;
c = getopt_long (argc, argv, "abc:d:f:",
long_options, &option_index);

/* Detect the end of the options. */
if (c == -1)
break;

---
RSS-материал