Probleme de programmation c++

Fermé
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 - Modifié par MegAlex77 le 21/08/2010 à 09:45
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 août 2010 à 16:07
Bonjour, hier je me lancais dans le c++.
Je commence par faire une petite aplication en console Win32.
Bien réussi je fait cette fois ci un questionnaire en console win32.
Seulement a cause de 2 chiffre je ne peux pas.(int 0 / int 1)
Voici le code :
 #include "1er projet.h"; 
             // Dans mon 1er projet.h j'ai #include <iostr 
 using namespace std; 
 int main () 
   
 { 
  int A; 
  int B; 
  int 1; 
  int 0; 


   printf("Passer au suivant ? (1 Y/0 N)(Si non est saisi la fenetre se fermera automatiquement)");  
   cin >> A; 
   if (A = 1) 
    { 

   
     printf("Fermer la fenetre ? (Obligatoire)"); 
     cin >> B; 
      if (B = 0) 
       { 

        return 0;  

       } 
      else 
       { 

        return 0;  
       } 

    } 
   else 
    { 


   return 0;  
  
    } 

  } 

Et si je met a la place des 2 chiffre des lettres j'ai une erreur comme quoi que la commande a été envoyé avant d'etre activé.(Run-Time Check Failure #3 - The variable 'Y' is being used without being initialized.)

J'attend vos réponses avec impatience.
Cordialement, Megalex77
A voir également:

10 réponses

MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
21 août 2010 à 09:36
// Dans mon 1er projet.h j'ai #include <iostream>

Escusez moi pour ce petit oubli
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 août 2010 à 12:27
#include "1er projet.h";
// Dans mon 1er projet.h j'ai #include <iostr

Petit conseil : inclus quand même iostream dans ton source. Ca marchera aussi bien, mais cela évitera qu'on se pose des questions ;-))).

Sinon pourquoi tu utilises la fonction printf ? Et non std::cout ?
if (A = 1)
Cette condition sera toujours vraie car c'est l'équivalent de :

A=1;
if (A==1)

Toi ce que tu voulais mettre c'est : if(A==1) // double égal pour comparer

int 1;
C'est quoi ça ? int x; permet de déclarer une variable de type int. Un nombre ne peut pas être une variable.


Corrige le tout, et reposte le programme si cela ne marche toujours pas.

Cdlt,
1
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
21 août 2010 à 12:40
Merci je vais voir sa
1
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
Modifié par MegAlex77 le 21/08/2010 à 12:44
Non sa ne marche pas j'ai cette erreur :
Run-Time Check Failure #3 - The variable 'Y' is being used without being initialized.

Voici mon code corrigé :
 #include "1er projet.h"; 
 #include <iostream>; 

 using namespace std; 
 int main () 
   
 { 
  int A; 
  int B; 
  int Y; 
  int N; 


   printf("Passer au suivant ? (1 Y/0 N)(Si non est saisi la fenetre se fermera automatiquement)");  
   cin >> A; 
   if (A == Y) 
    { 

   
     printf("Fermer la fenetre ? (Obligatoire)"); 
     cin >> B; 
      if (B == N) 
       { 

        return 0;  

       } 
      else 
       { 

        return 0;  
       } 

    } 
   else 
    { 


   return 0;  
  
    } 

  } 
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
21 août 2010 à 12:45
J'utilise printf parce que je suis habitué au php et la commande est la meme.
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 août 2010 à 13:41
Moui, mais c'est une très mauvaise habitude.
Il faut éviter de mélanger les fonctions de C avec les fonctions de C++.
En C++, on utilise plutôt std::cout et std::cin.
1
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
21 août 2010 à 13:55
Ok je vais utiliser std::cout
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 août 2010 à 14:05
Les messages donnés par le compilateur sont importants.
the variable 'Y' is being used without being initialized.
En français : la variable 'Y' est utilisée sans avoir été initialisée.

Et effectivement : if (A == Y)
Que vaut Y ? T'as juste mis int Y; sans l'initialiser.

Tu peux mettre simplement comme tout à l'heure if (A==1)
De même pour N.
Ce que j'ai dit tout à l'heure c'était que int 1; c'est incorrect.
Il faut mettre simplement if (A==1) pour comparer A à 1, c'est tout.
1
MegAlex77 Messages postés 41 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 4 janvier 2013 6
21 août 2010 à 14:23
Merci cela fonctionne tres bien mais je voulais savoir si c'était grave le message qui dit que mon projet est obsolete.
Sinon merci bien !
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 août 2010 à 16:07
Euh non ce n'est pas grave. Mais, après faudrait se renseigner du pourquoi du message.
En tout cas, si ça marche bien je te souhaite bonne continuation ;-)))
0
Euh... En C++, pas de printf.
Et avec "using namespace std" comme il l'a marqué en début de code, ce n'est pas std::cout, mais cout !
Bye ;)
1