(C++) Arreter boucle infinie volontairement
Fermé
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
-
2 juin 2010 à 15:56
gargoyle44 Messages postés 15 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 7 juin 2010 - 4 juin 2010 à 16:34
gargoyle44 Messages postés 15 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 7 juin 2010 - 4 juin 2010 à 16:34
A voir également:
- Boucle infinie c
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Factorielle en c boucle while - Forum C
- Samsung a51 redémarre en boucle - Forum Mobile
- Redmi note 8 s'allume et s'éteint en boucle - Forum Xiaomi
5 réponses
Voilà, ça fonctionne pour moi.
#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
{
int i, nombre;
i=1;
cin>>nombre;
while( i>0 ) // arreter cette boucle a tout moment
{
cout<<nombre<<endl;
nombre=nombre-1;
Sleep(2000);
if(kbhit())
i = -1;
}
}
#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
{
int i, nombre;
i=1;
cin>>nombre;
while( i>0 ) // arreter cette boucle a tout moment
{
cout<<nombre<<endl;
nombre=nombre-1;
Sleep(2000);
if(kbhit())
i = -1;
}
}
gargoyle44
Messages postés
15
Date d'inscription
mercredi 2 juin 2010
Statut
Membre
Dernière intervention
7 juin 2010
3
3 juin 2010 à 22:27
3 juin 2010 à 22:27
#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
void Traitement();
int main()
{
int buffer = 0;
do
{
cout<<endl<<"1 : Choisir nombre"<<endl;
cout<<"2 : Quitter"<<endl;
cout<<"Choix : ";
cin>>buffer;
if(buffer == 1)
Traitement();
}while(buffer !=2);
}
void Traitement()
{
int i=1, nombre;
cout<<endl<<"Entrer un nombre : ";
cin>>nombre;
do // arreter cette boucle a tout moment
{
cout<<nombre<<endl;
nombre=nombre-1;
Sleep(2000);
if(kbhit())
i = -1;
}while(i>0);
}
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
void Traitement();
int main()
{
int buffer = 0;
do
{
cout<<endl<<"1 : Choisir nombre"<<endl;
cout<<"2 : Quitter"<<endl;
cout<<"Choix : ";
cin>>buffer;
if(buffer == 1)
Traitement();
}while(buffer !=2);
}
void Traitement()
{
int i=1, nombre;
cout<<endl<<"Entrer un nombre : ";
cin>>nombre;
do // arreter cette boucle a tout moment
{
cout<<nombre<<endl;
nombre=nombre-1;
Sleep(2000);
if(kbhit())
i = -1;
}while(i>0);
}
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
4 juin 2010 à 11:00
4 juin 2010 à 11:00
Merci beaucoup ! Cette routine me posait de gros problème. Une derniere petite question juste pour le style : Serait-il possible de paramètrer le kbhit pour la boucle s'arrete avec une touche bien précise. Exemple : Avec ce que j'ai maintenant, avec n'importe quel touche la boucle se ferme maintenant j'aimeraisutiliser Zero et uniquement cette touche pour fermer la boucle ...
Je sais c'est un peu tard de le dire que maintenant
Je sais c'est un peu tard de le dire que maintenant
gargoyle44
Messages postés
15
Date d'inscription
mercredi 2 juin 2010
Statut
Membre
Dernière intervention
7 juin 2010
3
4 juin 2010 à 16:34
4 juin 2010 à 16:34
Tu dois utiliser getch pour récupérer le contenu du buffer (et du même coup, le vider)
Voilà, tout simple :).
if(kbhit()) { buffer = _getch(); if(buffer == '0') i = -1; }
Voilà, tout simple :).
cocodu67...
Messages postés
3153
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2024
145
2 juin 2010 à 15:57
2 juin 2010 à 15:57
bonjour
ça a un rapport avec ça : https://forums.commentcamarche.net/forum/affich-10278616-probleme-de-boucle-infini je pense.
bonne journée
ça a un rapport avec ça : https://forums.commentcamarche.net/forum/affich-10278616-probleme-de-boucle-infini je pense.
bonne journée
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
2 juin 2010 à 17:21
2 juin 2010 à 17:21
Malheureusement non car le problème du mec en question est qu'il voulait que sa boucle tourne qu'un certain moment en respectant ses conditions, moi je veux que ma boucle tourne vraiment a l'infinie. Je pourrais décider qu'elle tourne 5 min ou 5 heures. Si possible entrer une valeur avec mon clavier qui permettrait un arret normal de programme ou juste sortir de la boucle.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
2 juin 2010 à 16:21
2 juin 2010 à 16:21
hello
controle + C ?
controle + C ?
twintornado
Messages postés
20
Date d'inscription
mardi 18 mai 2010
Statut
Membre
Dernière intervention
3 mars 2012
2 juin 2010 à 17:21
2 juin 2010 à 17:21
Cela ne marche pas car la fenetre se ferme, je veux juste sortir de la boucle puis par exemple enregistrer les valeurs obtenues dans un tableau. Je veux juste décider a quel moment sortir de la boucle sans paramétrer le temps le temps de calcul, juste arreter la boucle quand j'en ai marre.
3 juin 2010 à 10:44
Bon avec ce que tu m'as donné la fenetre se ferme toujours or je voudrais par exemple retourner a un menu a la fin de la boucle. Par contre c'est bien la fonction kbhit qu'il me manquait je te remercie énormement.