Programme c++ débutant !

Résolu
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009 - 3 sept. 2008 à 10:18
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009 - 20 sept. 2008 à 17:42
Bonjour, voila j'ai essayé de faire un programme en c++ mais quelques petites choses ne marchent pas !
Voila mes problèmes :
Le programme s'éteint juste après le lancement (et si je met un " system("pause") " ca me met une erreur !
Le programme ne compte pas en secondes comment faire ?

Voici le code source :
<hr />
#include

<stdio.h> 

int

main(){

int compteur=0;printf(

"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

while(compteur<20){

printf(

"Je compte : %i\n", compteur);compteur++;

}

while(11>compteur>10){

printf(

"Crie le plus fort j'entend pas !");}

while(16>compteur>15){

printf(

"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");

}

}
<hr />
Comment faire pour le faire compter en secondes ?
Et aussi pour qu'il ne s'éteigne pas dès l'éxécution ?

Merci !

15 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 sept. 2008 à 11:29
Hello,
Héhé...ça s'est du prog
Alors, pour compter en secondes:
- soit utilisation d'un timer qui t'enverra un "signal" toutes les secondes...mais ptet pas adapter pour un débutant
- soit utilisation de la fonction sleep() en fin de boucle à laquelle tu passes le nombre de milli-secondes à attendre

Malgré cela, à la fin de ta première boucle, compteur vaudra 20 et donc ton prog ne passera jamais dans tes boucles suivantes.
Du coup, je te conseille d'intégrer des 2 dernières boucles dans la 1ère, sous forme de conditions if()

Et pour ton problème de "fin rapide", system("pause")...mais avec l'inclusion du fichier .h qui va avec (windows.h ?? je ne sais plus)

Ai-je été clair? Dans le cas contraire, n'hésites pas à demander des précisions.

Bon courage pour tes 1ers pas en C++!!

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
3 sept. 2008 à 11:41
Salut

-pour compter en seconde moi j'utilise la fonction sleep( temps en ms), la librairy c'est time.h je crois.

-Pour ne pas qu'il s'éteigne à la fin, aparemment tes sous windows , j'utilise à la fin de mon main ( juste avant le return 0; que tu n'as pas mis alors que tu programmes en c++) un getch(); qui appartient  à la librairie conio.h. Attention , ce n'est pas standart , donc selon ton compilateur il va comprendre ou non.

a+
3
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 sept. 2008 à 11:48
Complément à la réponse de zaibacker: getchar() est standard. Et je conseille d'abandonner conio.h...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 sept. 2008 à 20:15
Ah bah non, ton parenthésage n'est toujours pas bon...
Tu ne peux pas mettre ta déclaration de compteur entre accolade car ta variable ne sera pas reconnu en dehors de ce bloc

#include <stdio.h>
#include <windows.h>

int main()
{
    printf("Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

    int compteur = 0;
    while(compteur<20)
    {
        printf("\nJe compte : %i\n", compteur);
       
        if(compteur==10)
        {
            printf("Crie le plus fort j'entend pas !");
        }

        if(compteur==15)
        {
            printf("\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");
        }

        Sleep(1000);
        compteur++;
    }

    getchar();
    return 0;
}

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3

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

Posez votre question
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
3 sept. 2008 à 14:16
J'ai commencé a programmer le c++ y'a pas longtemps et j'ai que 14 ans et en plus c'est le premier language de progrrammation que j'apprend après le HTML donc j'ai un peu de mal ^^ !
Ca donne ca alors ? :
<hr />#include<stdio.h>

#include<time.h>

int main() {

int compteur=0;
printf(

"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

while(compteur<20) {

printf(

"Je compte : %i\n", compteur); compteur++;

sleep(1000);

}

while(11>compteur>10)
{

printf(

"Crie le plus fort j'entend pas !");

sleep(500);}

while(16>compteur>15)
{

printf(

"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");

sleep(500);

}

return 0;

getch();

}

<hr />
C'est bon ca ?

Merci !
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 sept. 2008 à 14:35
Eh non...ce n'est pas encore bon:
- regarde mes remarques concernant les boucles
- rien ne sera exécuté après un return: ton getchar() (plutôt que getch() ) doit être fait avant

Je te montres le squelette du programme.

int main()
{
  // Affichage du message d'intro
  [Je te laisse faire]

  // Compte-à-rebours
  int compteur=0;
  while (compteur < 20)
  {
    // Affichage du 1er message au bout de 10 secondes
    if (compteur==10)
    {
      [Je te laisse faire]
    }

   [Je te laisse faire]

    // Attendre 1 seconde;
    sleep(1000);

    compteur++;
  }

  // attendre la saisie d'un caractère avant d'arrêter le programme
  getchar();
  return 0;
}

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
3 sept. 2008 à 15:17
J'ai fait ceci :
<hr />#include

<stdio.h>#include

<time.h> 

 

int

main(){

printf(

"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

int compteur = 0;

while(compteur<20)printf(

"Je compte : %i\n", compteur);{

if(compteur==10){

printf(

"Crie le plus fort j'entend pas !");}

if(compteur==15)}

printf(

"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");sleep(1000);

compteur++;

getchar();

return 0;}

<hr />
Je pense que c'est mal structuré et il y a cette erreur qui m'intrigue  :
1>c:\documents and settings\eric\bureau\1er programme\main.cpp(20) : error C3861: 'sleep' : identificateur introuvable

Merci !
0
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
3 sept. 2008 à 15:17
J'ai fait ceci :
<hr />#include

<stdio.h>#include

<time.h> 

 

int

main(){

printf(

"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

int compteur = 0;

while(compteur<20)printf(

"Je compte : %i\n", compteur);{

if(compteur==10){

printf(

"Crie le plus fort j'entend pas !");}

if(compteur==15)}

printf(

"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");sleep(1000);

compteur++;

getchar();

return 0;}

<hr />
Je pense que c'est mal structuré et il y a cette erreur qui m'intrigue  :
1>c:\documents and settings\eric\bureau\1er programme\main.cpp(20) : error C3861: 'sleep' : identificateur introuvable

Merci !
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
3 sept. 2008 à 16:09
Problème de parenthèses, jeune Padawan :
- Après ton while, le printf doit être inclus dans l'accolade
- if (compteur==15) --> il n'y a rien dans ton test
- entre compteur++ et getchar(), il manque l'accolade de fin du while

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
3 sept. 2008 à 18:49
Ca marche toujours pas comme ca :
<hr />#include

<stdio.h>#include

<time.h> 

 

int

main(){

{
 
printf(

"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");

int compteur = 0;}

while(compteur<20){

printf(

"Je compte : %i\n", compteur);}

if(compteur==10){

printf(

"Crie le plus fort j'entend pas !");}

if(compteur==15){

printf(

"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");sleep(1000);

compteur++;

}

getchar();

return 0;}

<hr />
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
4 sept. 2008 à 12:42
Bonjour,

Juste pour infos chez mois 20*1sec = 20 secondes donc :

 printf("Vous avez 20 secondes pour crier " Je suis con !!! "\n ");
0
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
4 sept. 2008 à 13:31
C'est bon ca marche merci beaucoup !
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
4 sept. 2008 à 13:45
Hey! Bien vu JejeLand!
C'était pour voir si vous suiviez Nan, bon, ok, j'm'a gourré....
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Kian_ix Messages postés 26 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 5 avril 2009
13 sept. 2008 à 22:23
original ton prog ^^
si tu as windows tu inclus <Windows.h>
et la fonction est Sleep(); S majuscule
0
cs_Farqual Messages postés 37 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 15 mars 2009
20 sept. 2008 à 17:42
Merci mais c'est bon mon prog marche parfaitement maintenant !
0
Rejoignez-nous