Puoi fare di meglio:
0) il numero deve poter avere un numero arbitrario di cifre: 123456789012345678901234567890123456789012345678990, ad esempio
1) la base numerica deve poter essere qualunque numero compreso tra 2 e 64 almeno
2) la base numerica deve poter essere negativa!
3) poter usare piu' basi numeriche (60,60,24,30,12: ti ricorda nulla?)
4) come numero romano (99 -> XCIX)
5) come parola (99 -> 'novantanove')
Gia', si possono usare anche i numeri negativi come base per la rappresentazione di un numero!
Per la questione dell'input da tastiere.
Il main corretto ha la sequente sintassi:
int main(int argc, char**argv)
{
...
return 0;
}
argc e
argv non stanno li solo per il bel vedere, ma
servono:
argc: argument count/int, numero di argomenti passati sulla linea di comando. C'e' almeno uno, il path completo del programma
argv: argument vector/strings vector, un vettore di stringhe, terminato da 0, che sono i parametri passati sulla linea di comando.
argv[0] contiene il path del programma.
Fai un po di esperimenti per capire come funzionano.
Ad esempio, dovresti poter scrivere
convert -hex 123456789
convert -roman 1234567889
convert -italian 123456789
convert -b 33 123456789
convert -b (60,60,24,30,12) 123456789
Ovvio che non serve supportare tutto
Ma troverai decisamente interessanti le seguenti conversioni:
- uso di una base
positiva qualunque (almeno per quelle .lt. 64)
- conversione in parole
- conversione in numeri romani