bin ich blöd?
-
hallo,
ich will einfach nur die übergebenen parameter auslesen aber irgendwie seh ich da keinen sinn indem was das programm tut
hier der code:
int main(int argc, char* argv[])
{
cout<<argc<<endl;
for(int i = 0;i<argc;i++)
{
cout<<i<<": "<<argv[i]<<" "<<endl;
if(argv[i] == "-c")
{
cout<<i<<" ist -c"<<endl;
}}
}ich geb folgendes ein: ./meinTool -c test whatever
und erwarte folgende ausgabe:
4
0: ./meinTool
1: -c
1 ist -c
2: test
3: whateverstattdessen erscheint kein "1 ist -c" sprich der vergleich argv[i] == "-c" ist im fall i=1 falsch
wie kann das bitte sein?gruß,
henning
-
Sehr aussagekräftiger Titel

Du vergleichst hier Zeiger, keine Strings. Du musst entweder einen der strings in std::string umwandeln oder std::strcmp(argv[i], "-c")==0 (Header <cstring>) als Abfrage verwenden.
Achja: Bitte Syntaxhighlighting verwenden! Guckst Du den schönen C/C++ Button unter dem Beitragsfeld

-
http://www.cplusplus.com/reference/clibrary/cstring/strcmp.html
if( !strcmp( argv[i], "-c" ) )wiedermal zu lahm, blödes gegoogle..