Celem zadania jest implementacja prostego narzędzia konsolowego do przeliczania liczb z systemu dziesiętnego na szesnastkowy i odwrotnie.
Jeżeli użytkownik poda jako pierwszy argument do programu ciąg znaków zaczynający
się od liter 0x
, oznacza to, że podana liczba jest zapisana w formacie
szesnastkowym i program wypisze jej wartość zapisaną w formacie dziesiętnym.
$ ./program 0x1
1
$ ./program 0xeaa
3754
Jeżeli użytkownik poda jako pierwszy argument do programu ciąg znaków nie zaczynający
się od liter 0x
, oznacza to, że podana liczba jest zapisana w formacie
dziesiętnym i program wypisze jej wartość zapisaną w formacie szesnastkowym.
$ ./program 1
0x1
$ ./program 3754
0xeaa
Jeżeli użytkownik poda jako pierwszy argument do programu ciąg znaków nie będący liczbą w formacie szesnastkowym ani w formacie dziesiętnym to program powinien wypisać błąd na standardowy strumień błędów
$ ./program sdflksgdkgdsfbklgsdklbkfjd
error: not a number
Jeżeli użytkownik nie poda argumentów, to program powinien wypisać pomoc.
$ ./program
usage: program NUMBER
int main(int argc, char **argv)
, gdzie argc
oznacza liczbę argumentów przekazanych
do programu, argv[0]
to nazwa programu, natomiast argv[1]
to pierwszy argument%x
w funkcji printf()
%x
dla funkcji sscanf()
fprintf(stderr, "tresc bledu")