Warunkowe wczytywanie danych.

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ę.

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):

int x = 1;
...
if(argc == 4) {
x = atoi(argv[3]);
}
...
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ść.

0

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

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ń.

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