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

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 816
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 816
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 816
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 816
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