Warunkowe wczytywanie danych.

Warunkowe wczytywanie danych.
AE
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 11 lat
  • Postów:10
0

Witam
Mam pytanie odnośnie wczytywania danych w zadaniu:

Wartości a i b powinne być pobrane jako pierwsze 2 argumenty z linii komend. Jeżeli program został wywołany tylko z 2 argumentami to należy za x przyjąć 1. Jeżeli został podany trzeci argument to jego wartość jest wartością x.
Nie mam pojęcia jak zrobić żeby ten warunek.

Proszę o pomoc, z góry dziękuję.

artur_waw
  • Rejestracja:ponad 18 lat
  • Ostatnio:prawie 2 lata
  • Postów:155
2

Jeśli masz na myśli takie działanie:

program.exe -par1 -par2
x = 1
program.exe -par1 -par2 -10
x = 10

To wystarczy (tak poglądowo) że w kodzie dasz (dla C):

Kopiuj
int x = 1;
...
if(argc == 4) {
x = atoi(argv[3]);
}
...
edytowany 1x, ostatnio: artur_waw
1

A nie lepiej argumenty domyślne? Jak piszesz deklaracje funkcji to możesz przypisać domyślną wartość dla danej zmiennej, która będzie użyta, jak nie zostanie podana inna przy wywołaniu jej.

deklaracja:
void funkcja(int,int,int=3);

Dwa pierwsze argumenty nie mają wartości domyślnej, ale trzeci ma.

W definicji funkcji już nie piszesz tego =3, tylko normalnie

void funkcja(int x, int y, int z)
{
//...
}

Jednak trzeba pamiętać, że jak jest jakiś argument domyślny to każdy kolejny też musi być domyślny/mieć domyślną wartość.

AE
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 11 lat
  • Postów:10
0

Dwa rozwiązania są pouczające, ale drugie odpowiada mi bardziej.
Dziękuję bardzo:)

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:około rok
0

Pierwsze rozwiązanie jest właściwe, a drugie mówi o zupełnie innym problemie. Aninom pomylił argumenty funkcji z argumentami aplikacji podawanych w wierszu poleceń.

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.