konwersja argumentów z lini poleceń

konwersja argumentów z lini poleceń
SA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:61
0

Witam znalazłem funkcje w c++, żeby stringa zmienić na int:

Kopiuj
     int i;
    string str="13 51";
    istringstream iss(str);
    for (int n=0; n<2; n++) iss >> i;

a chciałbym zmienić tablice char *argv z głównej funkcji main argumentów i zmienić argumenty na typ int pomoże ktoś bo już sie długo z tym męczę ...?

edytowany 2x, ostatnio: sabek
several
  • Rejestracja:prawie 16 lat
  • Ostatnio:2 minuty
3

argv to tablica tablic, a nie jeden string, dlatego musisz wybrać który argument chcesz przekonwertować. Jeśli pierwszy to wtedy tak:

Kopiuj
int main(int argc, char *argv[]){
   string str(argv[1]);
   //i dalej już wiesz
}

W pierwszym indeksie jest zarezerwowane miejsce na nazwę (albo ścieżkę - nie pamiętam dokładnie) binarki, która zostałą uruchomiona.


edytowany 3x, ostatnio: several
SA
super dzięki !
twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
2

Zakładając, że te liczby będą jako parametry programu, no to będą w kolejnych c-stringach argv[1], argv[2] itd. Żeby dostać liczbę z takiego c-stringa wystarczy

Kopiuj
int num = stoi(argv[1]);
int another = stoi(argv[2]);

I nie trzeba się bawić w istringstream.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.