Probleme de programmation c++

MegAlex77 Messages postés 42 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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. MegAlex77 Messages postés 42 Statut Membre 6
     
    // Dans mon 1er projet.h j'ai #include <iostream>

    Escusez moi pour ce petit oubli
    1
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    #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
  3. MegAlex77 Messages postés 42 Statut Membre 6
     
    Merci je vais voir sa
    1
  4. MegAlex77 Messages postés 42 Statut Membre 6
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MegAlex77 Messages postés 42 Statut Membre 6
     
    J'utilise printf parce que je suis habitué au php et la commande est la meme.
    1
  7. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  8. MegAlex77 Messages postés 42 Statut Membre 6
     
    Ok je vais utiliser std::cout
    1
  9. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  10. MegAlex77 Messages postés 42 Statut Membre 6
     
    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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
  11. Bilow
     
    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