I'm familiar with C, not C++, so this may not apply. I'm going to pretend it's C code though...
The problem is your comparison:
if (argv == "c")
In essence, you're comapring pointers/addresses and NOT the contents of the string. In C, you'd use the strcmp() function. It would return 0 if the two strings are equal.
Now, I know C++ is fond of function/operator overloading. So the equality test might be mapped to a string comparison function already. However, I doubt that since everything else seems to be ok.
As a side note, you should always check argc before referencing any string arguments. If you reference argv and there were no arguments given, at best, you'll get a segfault. At worst, you'll get garbage that might affect how the program runs. I know, I know, this is just a test program... Just wanted to point that out though...