Portál AbcLinuxu, 12. května 2025 02:20

Dotaz: proc nelze 'cist' z argv[]?

Bundas avatar 3.7.2014 12:57 Bundas | skóre: 14 | Pardubice
proc nelze 'cist' z argv[]?
Přečteno: 349×
Odpovědět | Admin
proc tohle nefunguje?

int main(int argc, char* argv[]){
if(argv[1] == "1"){
cout << "zadal jsi 1" << endl;
}
return 0;
}

Abe the Messiah has come.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.7.2014 13:03 Václav Vanc | skóre: 14
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože takhle se řetězce neporovnávají. (Nastuduj si funkci strcmp :))
Řešení 2× (marbu, Bundas (tazatel))
Pavel Stárek avatar 3.7.2014 13:08 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože takhle porovnávání řetězců v C++ nefunguje. Respektive funguje jen pro typ std::string objekty. Tady by pomohlo:
#include <string.h>

if (strcmp(argv[1], "1") == 0) {
  cout << "zadal jsi 1" << endl;
}
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
xxxxxx avatar 3.7.2014 15:06 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky to jde takhle:
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
    string argv1 = argv[1];

    if (argv1.compare("1") == 0)
        cout << "Zadal jsi 1" << endl;

    return 0;
}
3.7.2014 15:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?

Že něco chybí u předchozího, lze pochopit, bo to není kompletní, ale toto kompletní je a je to špatně, bo tam něco zásadního chybí… :-(

Jardíku, nandej mu to :)

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
xxxxxx avatar 3.7.2014 15:54 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Co tam chybí? Docela by mě to zajímalo, zkompilovat to jde, fungovat to - zdá se - funguje. Jestli je tam opravdu něco špatně, tak se to rád dozvím, abych to znovu neudělal :)
3.7.2014 16:12 Václav Vanc | skóre: 14
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Netestuješ jestli je program vůbec spuštěn s nějakým argumentem.
xxxxxx avatar 3.7.2014 16:18 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Jo takhle, díky za opravu. Nenapadlo mě to, ani když to obyčejně ve svých programech testuju :).
3.7.2014 16:41 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: proc nelze 'cist' z argv[]?
Tak :-), to argc tam k něčemu je ;-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.