Tom's Guide > Forum > Programmation > C++ comparer une fonction int et.. [RESOLU, MERCI)

C++ comparer une fonction int et.. [RESOLU, MERCI)

Forum Programmation : C++ comparer une fonction int et.. [RESOLU, MERCI)

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour je suis en train de créer un programme en C++. J'aimerais que la valeur entrée au clavier puisse être une lettre "A" par exemple. Je l'ai stocké dans une variable char (est_ce judicieux?) et lorsque je tape A dans mon programme cela ne fonctionne pas. Comment faire?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Pour que ton caractère soit une lettre, oui c'est judicieux d'avoir pris le char.
Post nous ton programme pour qu'on voie pourquoi ça ne marche pas.

Répondre à 50cent_g_unit

J'avoue que je ne comprends pas trop ce que tu veux faire, fais nous parvenir rapidement un exemple de ton application

Répondre à Anonyme

je te l'ai envoye en message privé par peur d'encombrer la page. C'est un convertisseur hexadecimal binaire. C'est mon 2eme programme j'essaye de m'en sortir!merci

Répondre à secteur23

Ouais parce que si on en connait pas ce que tu veux faire dans ton programme on ne peut pas te répondre!

Répondre à 50cent_g_unit

le plus simple, c'est déjà de savoir où ça marche pas ; fais de temps en temps un printf de tes variables (choisis celles qui sont intéressantes) et compare avec le résultat auquel tu t'attendrais

Répondre à szdavid


#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
int entree;
cout << " Tapez la valeur en hexadecimale : " ;
cin >> entree;
cout << " ";

int factor1;
factor1 = 0;
int factor2;
factor2 = 1;
int factor3;
factor3 = 2;
int factor4;
factor4 = 3;
int factor5;
factor5 = 4;
int factor6;
factor6 = 5;
int factor7;
factor7 = 6;
int factor8;
factor8 = 7;
int factor9;
factor9 = 8;
int factor10;
factor10 = 9;
char factorA;
factorA = 'A' ;
char factorB;
factorB = 'B' ;
char factorC;
factorC = 'C' ;
char factorD;
factorD = 'D' ;
char factorE;
factorE = 'E' ;
char factorF;
factorF = 'F' ;

cout << " Voici la valeur en binaire : ";
if (entree == factor1)
{ cout << " 0000 ";
}
if (entree == factor2)
{ cout << " 0001 ";
}
if (entree == factor3)
{ cout << " 0010 ";
}
if (entree == factor4)
{ cout << " 0011 ";
}
if (entree == factor5)
{ cout << " 0100 ";
}
if (entree == factor6)
{ cout << " 0101 ";
}
if (entree == factor7)
{ cout << " 0110 ";
}
if (entree == factor8)
{ cout << " 0111 ";
}
if (entree == factor9)
{ cout << " 1000 ";
}
if (entree == factor10)
{ cout << " 1001 ";
};

if (entree == factorA)
{ cout << " 1010 ";
}
if (entree == factorB)
{ cout << " 1011 ";
}
if (entree == factorC)
{ cout << " 1100 ";
}
if (entree == factorD)
{ cout << " 1101 ";
}
if (entree == factorE)
{ cout << " 1110 ";
}
if (entree == factorF)
{ cout << " 1111 ";
}


system("PAUSE" );
return 0;
}

voilà, j'avais peur de le poster car il est vraiment lourd mais ce n'est pas grave, aidez moi juste s'il vous plait car lorsque je tape A par exemple, il ne m'apparait pas une réponse correcte. Le A n'est pas reconnu on dirait, j'ai fait une erreur mais laquelle?

Répondre à secteur23

si tu trouves qu'il est lourd, attends toi à pire avec tes futurs programme ; pourrais tu nous dire ce qu'il affiche et ce à quoi tu t'attendais ?

Répondre à szdavid

Je vous le redis désolé si une erreur est flagrante dites-là moi, c'est mon deuxième programme alors je ne sais pas encore grand chose... Merci je compte sur vous s'il vous plait

Répondre à secteur23

désolé ; sur le plan algorithmique, ça me semble bon ; ça doit être une erreur toute bête de c++ mais comme je suis plutôt développeur PLSQL et Java, je peux pas trop te dire

Répondre à szdavid

Je m'attendais à ce que je mette par exemple
A
puis le programme m'aurait écrit que pour A en héxadécimal la valeur correspondante est :
1010

Répondre à secteur23

Je sais ! ! !

Tu as mis "int entree" ; or, si tu tapes 'A', ça n'est pas un int :-)

Répondre à szdavid

oui surement car int est une valeur numérique... que dois-je faire? Mettre char entree??

Répondre à secteur23

ça me semble plus logique

Répondre à szdavid

oui mais après les int ne marcheront plus...

Répondre à 50cent_g_unit

C bon le programme marche parfaitement avec char. Je te remercie de ton aide et de votre rapidité à tous!

Répondre à secteur23

oui 50 cent... les int ne marchent plus que dois je faire?

Répondre à secteur23

il transforme alors cette partie et mets tout en char ; ou bien il fera après un if (toInt(entree)==1)...
(je ne suis pas sur des syntaxes ; l'idée est là)

Répondre à szdavid

oui je pense que ça doit etre ça

Répondre à 50cent_g_unit

je met tout en char alors... j'essaye et je vous tiens au courant tt de suite

Répondre à secteur23

jai mis les int en char.. aucun erreur détectée, pourtant les chiffres ne marchent toujours pas.. je ne comprends pas

Répondre à secteur23

comment pourrais-je faire?? sil vous plait je suis en train de me casser la tete et ce n'est pas la premiere ni derniere fois qu'un programme plante quand je le fais alors aidez moi à m'en sortir svp

Répondre à secteur23

essaye ceci :

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
char entree;
cout << " Tapez la valeur en hexadecimale : " ;
cin >> entree;
cout << " ";



cout << " Voici la valeur en binaire : ";
if (entree == '0')
{ cout << " 0000 ";
}
if (entree == '1')
{ cout << " 0001 ";
}
if (entree == '2')
{ cout << " 0010 ";
}
if (entree == '3')
{ cout << " 0011 ";
}
if (entree == '4')
{ cout << " 0100 ";
}
if (entree == '5')
{ cout << " 0101 ";
}
if (entree == '6')
{ cout << " 0110 ";
}
if (entree == '7')
{ cout << " 0111 ";
}
if (entree == '8')
{ cout << " 1000 ";
}
if (entree == '9')
{ cout << " 1001 ";
};

if (entree == 'A')
{ cout << " 1010 ";
}
if (entree == 'B')
{ cout << " 1011 ";
}
if (entree == 'C')
{ cout << " 1100 ";
}
if (entree == 'D')
{ cout << " 1101 ";
}
if (entree == 'E')
{ cout << " 1110 ";
}
if (entree == 'F')
{ cout << " 1111 ";
}


system("PAUSE" );
return 0;
}

Répondre à MythTitans

Ca marche. j'avais donc oublié les ' '. Je te remercie énormément!

Répondre à secteur23

un peu barbare ton programme :/
#include <iostream> suffi
ensuite travaille avec les division par 2 ( boucle faire tant ke ton numero different de 0 si il y é possible de divise pa 2 tu stocke 1 sinon tu stock 0 ensuite tu divise ) pour le faire en binaire sa va prendre 5 lignes et la tu a un mini de recherche pour un debut é sa te permer de travaille avec des plu grd nbre ;) é en cpp ta une ou 2 fonction pour recuper les chiffre ds une variable char ou CString =)

Répondre à BoBourse

petit conseil en passant :

j'ai vu que tu avais utilisé system ("PAUSE" ); pour marquer le temps d'arret, je te conseil d'inclure le fichier conio.h et d'utiliser la commande getch(); (c'est plus discret je trouve) ainsi tu pourrais supprimer return 0; car cette commande ne renvois pas de valeur et a la place du long int main(...) tu met simplement void main()

;-)

Répondre à MythTitans

petit conseil en passant :

j'ai vu que tu utilisais system ("PAUSE" ); pour le temps d'arret de ton programme, je te conseil d'include conio.h et d'utiliser getch(); à la place, ça te permet de supprime return 0; car la commande ne renvois pas de valeur et ça te permet de mettre void main() a la place de int main(int nNumberofArgs, char* pszArgs[])
et aussi j'aime bien cette fonction car elle est plus discrète, pas de gros message "appuyez sur une touche pour continuer"

Répondre à MythTitans

comment inclure le fichier conio??? je ne sais pas faire ca. De même pour les divisions etc.. mais j'imagine bien qu'il doit y avoir plus simple grâce à une formule

Répondre à secteur23

heu oui dsl pour les 2 messages mon ordi a un peu foiré, ben tu fais #include <conio> a la palce de int main(int nNumberofArgs, char* pszArgs[]) tu met simplement void main() et tu rempalce system ("PAUSE" ); return 0; par getch();

Répondre à MythTitans
Tom's Guide > Forum > Programmation > C++ comparer une fonction int et.. [RESOLU, MERCI)
Aller à :

Il y a 451 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens