Probleme de programmation c++

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

  1. 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
    1. 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
      1. Contributeur
        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
    2. Contributeur
      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
      1. Ok je vais utiliser std::cout
        1
        1. Contributeur
          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
          1. J'utilise printf parce que je suis habitué au php et la commande est la meme.
            1
            1. 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
              1. Contributeur
                #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
                1. // Dans mon 1er projet.h j'ai #include <iostream>

                  Escusez moi pour ce petit oubli
                  1