Zamiana argumentów uruchomienia programu na string

0

Witam

Napotkałem mały problem, a mianowicie gdy próbuje uruchomić program:

int main(int argc, char ** argv[])
{
	
(...)
	string pl_wej(argv[1]);
	string numer(argv[2]);
(...)

dostaje błędy:

plik2.cpp:102:5: warning: second argument of ‘int main(int, char***)’ should be ‘char ’ [-Wmain]
plik2.cpp: In function ‘int main(int, char
*)’:
plik2.cpp:107:23: error: no matching function for call to ‘std::basic_string<char>::basic_string(char**&)’

wszystko jest ok, jeżeli zamiast

char ** argv[]

jest

char *argv[].

Wg. polecenia powinny być w tym miejscu dwie gwiazdki.
Jak to obejść/naprawić?
Z góry dziękuję i pozdrawiam.

0

Taka deklaracja maina:

int main(int argc, char ** argv[])

Nie istnieje.
Zapewne chodzi o char ** argv

Lecz oba te kody są tym samym, jednie w char *argv[] masz "bardziej jawniejszą" (od strony programisty) tablicę.

0

To coś char ** argv[] to już są trzy gwiazdki. [] to sposób na zaznaczenie, że oczekujesz tablicy (a nie jakiegoś tam wskaźnika), ale tablica i tak musi zostać przekazana przez wskaźnik do pierwszego elementu.

0

Dzięki chłopaki, char ** argv bez [] działa. Niby szczegół, a męczyłem się z tym od rana, musiałem źle przepisać kod.
Miłego dnia!

1 użytkowników online, w tym zalogowanych: 0, gości: 1