Uruchamianie pliku exe z argumentami - warunki argumentów.

0

Mam program do uruchomienia z wartościami z zakresu 2 do 35 (int). (co należy sprawdzić przy starcie programu i jeśli warunek nie jest spełniony zwrócić kod EXIT_FAILURE.) I to mi działa, ale problem tkwi w tym, że jeżeli argument to nie liczba, zwracany kod to 2, a jeśli jej nie podano to 3.

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

char l[50]; // l - liczba
int N,x,wynik=0,p=1;
if (argc==2){ 
(sscanf(argv[1], "%d", &N));
if (N>=2&N<=35) {
...

Samo

return EXIT_SUCCESS/FAILURE

bezproblemu a co z 2 lub 3?

0

uzyj funkcji exit() np exit(2). Do programu dodaj #include <stdlib.h> zeby uzywac tej funkcji

0
Bialy Lew napisał(a):

uzyj funkcji exit() np exit(2). Do programu dodaj #include <stdlib.h> zeby uzywac tej funkcji
Ale po co tak? Skoro kolega używa return w mainie, więc żaden problem zamiast:

return EXIT_SUCCESS;

dać po prostureturn 123;

Jednak nie należy używać takich magic numbers, a zrobić z tego np. enuma.
0

Tak jak kolega powyżej, najlepiej użyć enuma.

#ifdef EXIT_SUCCESS
#undef EXIT_SUCCESS
#endif
#ifdef EXIT_FAILURE
#undef EXIT_FAILURE
#endif

enum eRetCode
{
    EXIT_SUCCESS,
    EXIT_FAILURE,
    EXIT_FAILURE_NOT_NUMBER,
    EXIT_FAILURE_PARAM_CNTR,
}; 

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