Odpowiedniki w C++ z Java

0

Cześć wam, miałem za zadanie napisać pewien program w javie, a następnie musze go przepisać na c++
I mam pytanie kogoś kto dobrze zna się na tych dwóch językach
Istnieje w c przekazywanie parametrów wraz z uruchomieniem w terminalu?
tzn:

javac nazwa_pliku.java aa 45 2332

Oraz jaki jest odpowiednik w C++ metody/funkcji :

try {} catch {}
2
  1. W C++ main wygląda tak:
int main(int argc, char *argv[])

gdzie:
argc to ilość argumentów
argv to tablica parametrów (łańcuchów)

  1. Po wygooglowaniu try-catch c++ pierwszy wynik. Przy okazji - nie są to metody ani funkcje a instrukcje.
0

Okej a odnośnie

 try    
    {          
      n=Integer.parseInt(args[0]);
      if(n < 2)
      {
         System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
         System.exit(0);
      }
    }
    catch (NumberFormatException ex)
    {   
      System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
      System.exit(0);          
    }

Odpowiednik takiej instrukcji ?

Integer.parseInt()
3

Przecież takie informacje są chyba w dowolnym kursie. Dlaczego nie sprawdzisz?

1

std::stoi, na tej stronie masz nawet przykłady.

0

Odnośnie Integer.parseInt() oraz atoi / stoi itp itd
jest dość spora różnica między ich działaniem "Integer.parseInt() " "szuka" tylko typów tylko int tzn 5.0 już nie nie przejdzie a podane wcześniej instrukcje po prostu ucinają to co jest po przecinku i zostawiają część całkowitą.

aolo23 napisał(a):

Okej a odnośnie

 try    
    {          
      n=Integer.parseInt(args[0]);
      if(n < 2)
      {
         System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
         System.exit(0);
      }
    }
    catch (NumberFormatException ex)
    {   
      System.out.println("Podano niepoprawną wartość zakresu poszukiwanie liczb pierwszych!");
      System.exit(0);          
    }

Odpowiednik takiej instrukcji ?

Integer.parseInt()

W tym kodzie potrzebowałem tylko liczb całkowitych które były w tablicy args[],
Więc zatem jaką instrukcję dorzucić by widniała jednak różnica pomiędzy 5 a 5.5(które powinno w moim przypadku trafić już do catch) ?

1

Tak to jest jak dopiero co nauczyles sie jezdzic autem a teraz chcesz przejsc na motor i dziwisz sie, ze nie ma kierownicy okraglej... oraz ze nie ma jakis przycisku na kierowcy...

std::cin wczytuje Ci liczbe. Nie musisz parsowac na zaden typ. std::cin sam parsuje na odpowiedni typ. Wiecej w google bo to jest pierwsza lekcja kazdego kursu o C++

i nie. C++ nie bedzie sprawdzal tak bardzo typow. Bedzie ucinal dany typ (mowa o prostych typach)
Jezeli chcesz zeby rzutowanie bylo dokladne i rzucalo Ci wyjatek to nie ten jezyk.

jezeli chcesz zeby wyrzucal wyjatek musisz to zrobic sam (swoj wlasny typ)

https://stackoverflow.com/questions/7701993/casting-object-with-user-defined-type

1

Walenie wyjątków, bo użytkownik podał 5.5 zamiast 5 albo 2.0 zamiast 2 to nie jest IMHO najszczęśliwszy pomysł.
Jeśli podana liczba nie jest intem to obetnij ją do int i albo wyświetl info że program automatycznie to naprawił albo zapytaj użytkownika czy chce kontynuować z poprawioną wartością.
Jeśli argument w ogóle nie jest liczbą to wyświetl, że użytkownik jest bałwanem i kończ program :P

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