Rah, regardez ce code, logiquementil marche mais quand j´entre mo nom il me met juste la première lettre!!!!!!!!!!!!!!
main()
{ char name;
cout < <"Salut comment tu t´appelles?\n";
char(10==name);
cin > > name;
cout < <"Ok tu t´appelles donc " << name < <".";
while ( 1)
int _getch(1);
return 0;
}
Ne m´enveuillez pas, met c´est mon premier programme avec " char"
J´ai trouver mon erreur
youpie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!
{ char name[10];
char(10==name[10]);
" char(10==name[10]); "
C´est quoi, ça?
Un espèce d´appel à un contructeur de char prenant la valeur du résulat booléen de la comparaison de l´entier 10 et un déférencement du 11ème élément sur dix d´un tableau d´octets char...
Tiens, un cadeau:
using namespace std;
int main(void)
{
char name[11];
memset(name, 0, 11);
cout < < " Salut comment tu t´appelles?" < < endl;
cin > > name;
cout < <"Ok tu t´appelles donc " < < name < < " ." < < endl;
while(!_getch())
return 0;
}
Ça devrait déjà aller mieux: je suis juste pas sur que le while(!_getch()) va marcher, car ça fait très longtemps que je n´ai pas utilisé cette fonction...
Kelios
---------
Hey, le mien marche très bien, je te le jure.
Rah... bah, maintenant je mes ce ke je sais sur calculator et je ne sais pas comment faire afficher le résultat!!!!!!!!!!!!!!
main()
{ //début programme
//varialble
char operation[1], integer1[100], integer2[100], result[100];
//début corp programme
cout < <"Entrez la premiere valeur: " ;
char(100==integer1[100]);
cin > > integer1;
cout < <"Entrez la deuxieme valeur: " ;
char(100==integer2[100]);
cin > > integer2;
cout < <"Entrez l´operation que vous voulez: " ;
cout < <"Le resultat est " << result < <" . ";
//fin corp pogramme
while(1)
int _getch(1);
return 0;
//fin programme
}
aidez moi svp...
Explique moi juste qu´es-ce que tu essaie de faire avec " char(100==integer1[100]); "
Sinon:
"
je ne sais pas comment faire afficher le résultat!!!!!!!!!!!!!!
"
"
cout < <"Entrez l´operation que vous voulez: " ;
cout < <"Le resultat est " < < result < <" . " ;
"
Là encore, c´est que ton code est diaboliquement incomplet: tiens, voilà un cadeau(encore, heureusement que je suis généreux ces temps ci! ^^). Je reprends du bon endroit...
/////////////////////////////////////////////////
//[...]
char operation[6]={0}; //6 charactères: C´est amplement suffisant
int integer1=0, integer2=0;
char *op=NULL;
//[...]
while(!op)
{
cout < <"\nEntrez l´operation que vous voulez: " ;
cin > > operation;
op = strtok(operation, " +-*/");
switch(op)
{
case ´+´:
unsigned int result = integer1 + integer2;
break;
case ´-´:
signed int result = integer1 - integer2;
break;
case ´*´:
unsigned int result = integer1 * integer2;
break;
case ´/´:
if(!integer2)//Si l´integer2 est 0, on prévient la division par zéro!
{
cout < < " \nLa deuxième valeur doit être différente de 0!" < < endl;
op=NULL;
break;
}
unsigned float result = integer1 / integer2;
break;
case 0://Si c´est une valeur NULL, cad que strtok n´a pas trouvé de tokens
break;//On quitte le switch, le while s´en occupera
default:
cout < < " \nErreur fatale inconnue! Le programme va maintenant se terminer...";
while(1)
int _getch(1);
return 0;
}//Fin du switch
}//Fin du while
cout < <"\nLe resultat est " < < result < <" . " ;
Voila! Seul pépin, il ne prend pas en charge des valeurs négatives...
J´espère ne pas avoir fait d´erreurs en tout cas, c´est vraiment pas évident, écrire du code sur dans cette boite...
Sans oublier que l´intendation sera perdue...
Alors, définitivement, j´espère que tu pourras me lire ; P
Kelios
---------
Ki??????????????????????? je te signale que c´est bourré d´erreurs. sinon, ok merci c´est cool.
Y´a qd meme qqs petits pb, calculator stock ses nombres dans des chaines, et il les convertit pas dans integer1 et integer2...
Le plus simple c´est de faire un cin>>integer1
L´avantage c´est que ca gere les signes, l´inconvenient c´est que ca teste pas si le nombre est trop grand pour tenir dans un int.
Mais pour un programme comme cela, c´est pas necessaire de s embeter avec la conversion d une chaine en nombre, et tous les probelems que ca implique pour vraiment tester qu´on ait entre un nmbre et pas un nombre+ des lettres...etc
" je te signale que c´est bourré d´erreurs. "
Vas y, dis moi où... Je peut très bien m´être trompé... Quoique qu´a mon avis le mot soit un peut fort, ´bourré´...
" Y´a qd meme qqs petits pb, calculator stock ses nombres dans des chaines, et il les convertit pas dans integer1 et integer2... "
C´est pourquoi dans ma version, j´ai changé ces variables en int...
" l´inconvenient c´est que ca teste pas si le nombre est trop grand pour tenir dans un int. "
Qui ici va vraiment aller au dessus du 65535 avec une calculatrice pareille? Si tu le veut vraiment, étend le au __int64, tu devrai en avoir assez de 4 294 967 295 ; P Et au delà, bien on se créée une classe ect...
" Le plus simple c´est de faire un cin>>integer1 "
Mais c´est ce qu´il a fait, bon sang...
" cin > > integer1; "
retape le code en entier svp car il y a une quinzaine d´erreur quand je l´ajoute a mon propre code.
Hé! Mon gars, fait pas copier-coller, ça servira à rien...
De toute façon, ça ne servirai à rien: JV.com rajoute des espaces là ou il y en a pas, des trucs du genre: par exemple, ´<<´ est transformé par JV.com en < < . ..
" retape le code en entier svp car il y a une quinzaine d´erreur quand je l´ajoute a mon propre code."
Je vais t´apprendre un truc: généralement, il y a qu´un seul problème par 3/4 messages... et ça varie beaucoup...
Sinon, je veut bien retapper le code, mais comme j´ai dis, fait gaffe...
Au pire, fille moi ton e-mail, je t´enverrai un code source...
Bon alors voilà:
using namespace std;
int main(void)
{
char operation[6]={0};
int integer1 =0, integer2 =0;
char *op=NULL;
cout < <"Entrez la premiere valeur: " ;
cin > > integer1;
cout < <"\nEntrez la deuxieme valeur: " ;
cin > > integer2;
while(!op)
{
cout < <"\nEntrez l´operation que vous voulez: " ;
cin > > operation;
op = strtok(operation, " +-*/");
switch(op)
{
case ´+´:
signed int result = integer1 + integer2;
break;
case ´-´:
signed int result = integer1 - integer2;
break;
case ´*´:
signed int result = integer1 * integer2;
break;
case ´/´:
if(!integer2)//Si l´integer2 est 0, on prévient la division par zéro!
{
cout < < " \nLa deuxième valeur doit être différente de 0!" < < endl;
op=NULL;
break;
}
signed float result = integer1 / integer2;
break;
case 0://Si c´est une valeur NULL, cad que strtok n´a pas trouvé de tokens
break;//On quitte le switch, le while s´en occupera
default:
cout < < " \nErreur fatale inconnue! Le programme va maintenant se terminer...";
while(!_getch())
return 1;
}//Fin du switch
}//Fin du while
cout < < "\nLe resultat est " < < result < < " .";
while(!_getch())
return 0;
}
Là, dis moi tes messages d´erreur/warnings...
Kelios
---------
kelios, j´ai pas dit ce que j´ai dit pour toi, t´es pas le centre du monde, je parlais a calculator
" Le plus simple c´est de faire un cin>>integer1 "
Mais c´est ce qu´il a fait, bon sang...
" cin > > integer1; "
char operation[1], integer1[100], integer2[100], result[100];
ah ouais c´est ce qu´il fait avec integer1 qui est une chaine de caractere?
c´est pour ca que je disais que chez lui ca compilerais pas -> 15 erreurs.
Je le repete je m´adressais pas a toi. Et je sais que t´avais change, mais lui en faisant un mix des 2, n´avais pas du faire attention au changement, vu qu´on lui a pas explique, et c´est ce que j´ai tente de faire. Ca s´adressait a lui et non a toi, car je me doute que tu sais deja ca. Prochaine fois, evite de croire que tout t´es destine, ca aidera.
bah, kelios, voici mon e-mail:
Deus_of_Mars@hotmail.com
up
up
up