CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++]

-Xandam-
-Xandam-
Niveau 4
11 septembre 2005 à 08:45:23

Salut .
Quelqu´un peut me dire ce qui cloche dans ma calculatrice ?
Il y a 8 erreurs :
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp: In function `int main()´:
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:31: ANSI C++ forbids comparison between pointer and integer
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:34: non-lvalue in assignment
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:34: parse error before `}´
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:35: ANSI C++ forbids comparison between pointer and integer
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:38: non-lvalue in assignment
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:38: parse error before `}´
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:42: parse error before `<´
c:\documents and settings\guillaume surroca\mes documents\hahaha\calculatrice.cpp:49: parse error at end of input

Et voilà le code :

  1. include <cstdio>
  2. include <cstdlib>
  3. include <iostream>

using namespace std;

int main()
{
cout << "Suivez les instructions pour affectuer vos calculs\n" ;
cout << "Pour quitter le programme entrez 9999 a la première valeur.\n\n" ;

for (;;)
{
int a ;
int b ;
int r ;
char op ;

cout << "Entres le premier nombre :\n" ;
cin >> a ;

if (a=9999)
{
break ;
}

cout << "Entres le second nombre :\n" ;
cin >> b ;
cout << "Entres l´opérateur :\n\n" ;
cin >> op ;

if (op=="+")
{
a + b = r
}
else if (op=="-")
{
a - b = r
}
else
{
cout << "Entres un opérateur valide.\n"
cout << r
<< endl ;
}

system("PAUSE") ;
return 0 ;
}

Vengeur41
Vengeur41
Niveau 10
11 septembre 2005 à 09:58:29

Enormement de choses...
Tout d´abord j´aime pas du tout les déclarations dans les boucels mais ca ca n´intervient pas dans le problème...

On continue par la première erreur : il manque un ´}´ pour refermer ton for !

Ensuite, ta calculatrice buggera si tu utilise ca :
if (a=9999)

on fait if (a==9999) !

Poursuivons : if (op=="+")
Donc là tu compare un tableau et un entier...
On fait ça plutot : if (op==´+´)
...

Un peu plus loin : << endl ;
Ca se met pas tout seul ca, met le sur la meme ligne que le cout !

Puis on a ca : a - b = r
Ils est où le ´;´ ?

J´ai pas tout examiné j´ai pris que les détails choquants...
Révise ta syntaxe :p)

Ptival
Ptival
Niveau 10
11 septembre 2005 à 12:16:30

De grosses lacunes :x

Déjà tu ne maîtrises même pas tes opérateurs...

== pour la comparaison, pas = !

Ensuite, l´opérateur égal assigne la valeur à sa droite dans sa l-value (à sa gauche)
Donc (a-b) n´est pas une l-value conforme, et je pense que tu voulais plutôt :

r = a-b;

Ensuite quand tu mets "+", ton compilateur crée un char* contenant : ´+´ puis ´\0´ (Fin de chaîne)
Ce que tu compares à ton char op, donc ça n´ira pas, comme l´a dit Vengeur, il faut comparer avec ´+´ !

-Xandam-
-Xandam-
Niveau 4
11 septembre 2005 à 15:32:39

J´ai commencé le c++ il y a qualques jour donc les érreurs de syntaxe sont monnaie courrante dans ce que je fais .
Merci .

dnob700
dnob700
Niveau 10
11 septembre 2005 à 17:40:40

par contre vengeur : on peut mettre << endl tout seul sur une ligne si il n´y a pas de ; à la fin de la ligne précédente (et si c´était un cout qqch).

Car le compilo ne fait pas attention au retour à la ligne sauf dans les chaines et les directives de précompilation (mais ça c´est pas le compilo justement).

TATOFOREVER
TATOFOREVER
Niveau 8
11 septembre 2005 à 22:10:07
  1. include <iostream>

/*pas becoin des outres libraries si tu vas faire //juste du C++ */
/*declare les variables globalement, car si tu le declare dans ta boucle, chaque fois que la boucle fais un tour elle va declarer encore et encores tes variables, globalment ca sert aussi a etre utilisée en deors du main*/
int a = 0 ;
int b = 0;
int r = 0;
char op = NULL;

int main()
{
cout << "Suivez les instructions pour affectuer vos calculs\n" ;

for ( int cpt; cpt == 10; cpt++)
{

cout << "Entrez le 1er nombre l´operateur et le deuxieme nombre (sans espaces SVP):" ;
cin >> a >> op >> b;

if ( op == ´+´)
{
cout << "Reponse :"(a + b);
}
else if ( op == "-")
{
cout << "Reponse :"(a - b);
}
else
cout << "Entres un opérateur valide.\n"

}

system("PAUSE") ;
return 0 ;
}/*Essaie d´outres fonctionnes mathematiques, comme: sin(chifre), multi, divi, etc... */
/*utilise pour un seul char ´´ et pour un tableau de char "" c´est a dire, une chaine de caracteres*/

voila, regle les espaces, je crois que tu devrai comprendre le code il est azzes facile...

godrik
godrik
Niveau 30
12 septembre 2005 à 13:48:32

je voudrais réagir sur:
"declare les variables globalement, car si tu le declare dans ta boucle, chaque fois que la boucle fais un tour elle va declarer encore et encores tes variables, globalment ca sert aussi a etre utilisée en deors du main"
ceci est partiellement faux.
La seul chose que dit le C++ c´est que les variables ne seront pas utilisable en dehors du scope de la boucle.
en outre cela ne VEUX PAS DIRE que le compilateur va "detruire" la variable puis la "recréer".
Cela lui donne des informations sur l´endroit où seront utilisé les variables.
Il sait deplus que l´etat de la variable au tour de boucle i+1 ne depend pas de la valeure qu´elle avait au tour i.
Le compilateur est libre de faire ce qu´il veut de ces informations. Et il est préférable de ne déclarer des variables que la ou on en a besoin.

PS: ceci ne s´adressait pas a Xandam mais au gens qui lui ont conseillé de tout déclarer au debut pour des raison de performances.

dnob700
dnob700
Niveau 10
12 septembre 2005 à 17:44:08

Sans compter que même sans ça, il vaut toujours mieux quand c´est possible (et ça l´est presque tout le temps) déclarer ses variables au niveau fonctions au maximum, mais pas au niveau global qui est plus mauvais niveau performance car les variables sont initialisé dans le tas alors qu´elles le sont dans la pile quand elles sont déclaré au niveau d´une fonction. Hors l´accès à la pile est de très loin le plus rapide.

TATOFOREVER
TATOFOREVER
Niveau 8
12 septembre 2005 à 23:03:07

En fait, je n´ai jamais parlé de performances, j´ai just dit que globalement elle pourront etre utilisée par tout dans l´aplication et deuxiement, si la variable est crée dans la boucle, elle sera toujours recrée(n´eamoins qu´on lui posse une condition pour n´epas les recréer). Alors si on parle de performance, elle peuvent etre crées soit localement( au main), soit globalement( en de-hors du main).
Lissez avant de poster :oui:

soule_link
soule_link
Niveau 10
12 septembre 2005 à 23:07:27

ta quoi comme caculatrice?(pour savoir)

SonGokouSSJ3
SonGokouSSJ3
Niveau 8
12 septembre 2005 à 23:09:50

Une calculatrice qu´il à trouvé chez sa mémé...

:dehors:

Nesca
Nesca
Niveau 5
13 septembre 2005 à 16:00:41

j´ai just dit que globalement elle pourront
etre utilisée par tout dans l´aplication et
deuxiement, si la variable est crée dans la
boucle, elle sera toujours recrée(n´eamoins
qu´on lui posse une condition pour n´epas les
recréer).

Qui te dit que la variable sera recréée ? Ce n´est pas vraiment ce que j´avais cru comprendre de l´allocation de registres...

Il est vrai que l´on peut faire quelques remarques sur l´initialisation de variables dans une boucle, ou même sur la nécessité de les initialiser lorsqu´elles vont tout juste être écrites, mais passons.

Ceci dit, en quoi celà te poserait-il problème si elle était recréée, puisque tu ne parlais pas de performance ?

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment