Pytanie do paragrafu 8.18 [Symfonia]

0
 #include <iostream.h>
#include <stdlib.h>

main(int argc, char * argv[])
{
     cout << "Wydruk parametrow wywolania :\n" ;

     for(int i = 0 ; i < argc ; i++)
     {
          cout << "Parametr nr "<< i
               << " to string: " << argv[i]
               << endl ;
     }

     /* --- zamienimy string na liczbe ---*/

     float x ;
     x = atof(argv[2]);
     x = x + 4;
     cout << "x =  " << x << endl ;
} 

"Jeśli program wywołamy tak pelikan param1 77.2"
U tutaj moje pytanie, wywołać tzn. jak? dać jako nazwę pelikan param1 77.2.cpp ?

0

Wywołanie z linii poleceń. Jak masz Windows 7, wejdź w katalog ze skompilowaną aplikacją, przytrzymując shift kliknij prawym na pustą przestrzeń w katalogu i wybierz "otwórz okno polecenia tutaj". Wpisz nazwę programu i argumenty oddzielone spacją.

I jeszcze jedna rzecz: uczysz się z bardzo starego wydania książki, zaopatrz się w Symfonię C++ Standard.

0

Czyli przez cmd mam się dostać do folderu z .exe tego programu i co dalej?

0

Wywołać go wpisując program.exe argument1 argument2 i nacisnąć enter.

0

Dzięki :)

Dziwne, bo jak wprowadzę trzeci parametr jako 17.2 to w odp. dostaje x = 4

0

Bo 17.2 powinieneś podać jako drugi parametr. Pierwszym parametrem jest zawsze nazwa programu.
Zmień książkę...

0
byku_guzio napisał(a)

Zmień książkę...

Zdecydowanie, także dlatego że atof() nie powinno się używać, gdyż ta funkcja nie ma obsługi błędów. Coś starawa ta "Symfonia".

0

W takim razie co mogę użyć zamiast atof()?

0

W cstdlib jest też strtod().

0

Imho lepiej jest użyć strumieni

istringstream iss(argv[2]);
iss >> x;

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