WebKiller17
Messages postés4Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention 2 décembre 2003
-
1 déc. 2003 à 15:26
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
2 déc. 2003 à 18:11
Hello a tous,
J suis un amateur en prog... et j aurai besoin de votre coup de main... est ce que vous pourriez me dire ce qui joue pas dans ce code et ce qu il faudrai encore mettre pour qu il soit fini?! Je vous serai très reconnaissant !!!
voilà la source:
////////////////////////
// Includes
#include
#include<string.h>
// namespace -> std
using namespace std;
// fonction principale
int main (void)
{
unsigned int final_base = 0;
char *init_base = new char[10]; unsigned int flag_error 1; // flag error 1
unsigned int init_base_len = 0;
// initialisation de init_base
strcpy (init_base,"\0");
// choix de la base initiale
while((final_base <= 0) || (final_base > 3))
{
cout << "\nBase Converter\n";
cout << "--------------\n";
cout << "1: -> Binaire\n";
cout << "2: -> Hexadecimal\n";
cout << "3: -> Decimal\n\n";
cout << "Veuillez choisir la base finale [1,2,3]: ";
cin >> final_base;
};
while(flag_error != 0)
{
cout << "\nConventions pour la valeur a convertir\n";
cout << "--------------------------------------\n";
if(final_base!=3)
cout << " d: decimal [ex: d_102]\n";
if(final_base!=1)
cout << " b: binaire [ex: b_1010]\n";
if(final_base!=2)
cout << " h: hexadecimal [ex: h_F4ED]\n";
if(init_base!="")
cout << " s: utiliser la derniere valeur entree\n";
cout << "\nEntrer votre base de depart: ";
cin >> init_base;
// control de la longeur de init_base
if(init_base_len=strlen(init_base)<3)
{
flag_error=1; // entree pas assez longue
cout << "\n\n\n!!! L'entree -> " << init_base << " <- n'est pas assez longue !!!\n\n\n";
}
else
flag_error=0;
// gestion des chars (maj/min) -> min
init_base[0] = tolower(init_base[0]);
// control de la base entree
if(flag_error == 0)
{
if((init_base[0] != 'd') &&
(init_base[0] != 'b') &&
(init_base[0] != 'h') &&
(init_base[0] != 's'))
{
flag_error=1;
cout << "\n\n\n!!! La base entree n'existe pas !!!\n\n\n";
}
else
flag_error=0;
}
// control si l'utilisateur ne veut pas convertir dans la meme base
if(flag_error == 0)
{
if(((init_base[0] == 'b') && (final_base == 1)) ||
((init_base[0] == 'h') && (final_base == 2)) ||
((init_base[0] == 'd') && (final_base == 3)))
{
flag_error=1;
cout << "\n\n\n!!! Base initiale = Base finale !!!\n\n\n";
}
else
flag_error=0;
}
WebKiller17
Messages postés4Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention 2 décembre 2003 2 déc. 2003 à 09:52
Oui c est clair, mais est ce que quelqu un aurait un lien, ou une source avec les fonctions pour les convertions? car j en trouve quelques une mais je sais pas les quels sont bien et qui fonctionne etc...
Si quelqu un pourrai m aider la dessus ça serait vraiment sympa !! MERCI BCP !!!
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 2 déc. 2003 à 18:11
Salut,
Evite de copier betement des fonctions, essaye plutot de les comprendre et ensuite de coder tes propres fonctions.
Dans ma source tu as BaseToDec(...), qui converti de n'importe quelle base vers du décimal. Le reste (decimal vers autres bases) est converti avec itoa(...).
Cherche sur le site, deja bcp de sources de conversion, ca te fait deja pas mal de "modeles" a etudier.