Ben Bacarisse wrote:
> Hal Vaughan <hal@[EMAIL PROTECTED]
> writes:
>
>> Ben Bacarisse wrote:
>>> Hal Vaughan <hal@[EMAIL PROTECTED]
> writes:
> <snip>
>>>> Okay. I'm a bit confused. I have:
>>>>
>>>> int main(int argc, char* argv[])
>>>>
>>>> which leads me to believe argv is of type char*,
>>>
>>> Ah, no. In C and C++, the [] in a parameter list act almost exactly
>>> like a *. argv is and array of char pointers and thus becomes a
>>> pointer to a the first char pointer when it is passed to main. The []
>>> form is transitional but a little confusing.
> <snip>
>> So now that I have
>>
>> map<string,string> parseargs(int count, char** args[])
>>
>> how do I access the individual char[] arrays in args (which is argv
being
>> passed to the function)? I can't do:
>>
>> string arg;
>> arg = args[x]
>>
>> I've tried that and it doesn't work. Do I need to dereference it or
>> something?
>
> It should work once the parameter is correctly specified (see
> elsethread), though I prefer initialisation semantics to assignment
> where possible:
>
> string arg = args[x];
You're right. It's working fine now. Got it all switched over so I'm
using
make and I've taken care of getting read of any conflicting names and so
on. I wrote up a simple Perl script that will scan my .c or .cpp files
and
create a .h file with a list of all the functions as prototypes. It also
makes sure the .h file uses all the same includes the .c or .cpp file uses
and includes typedefs as well. There's a few glitches, for instance if
you
define a map with:
map<string, string>
it won't get it unless you remove the space after the comma. I'm sure I
could work that out, but the regex is messy enough as it is. It makes it
easy for regenerating the .h files whenever I update the source files,
though.
Hal


|