Bonjour. J'ai créé un programme de style (trouvez le nombre) et je souhaite que vous le testiez dans le but de savoir s'il est si robuste qu'il en à l'air :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
#include <stdio.h>
#include <stdlib.h>
#include "myHeader.h"
int main(void)
{
  int hasard, argent;
  char code[2], saisie[2], choix[2];
 
  srand(time(NULL));
  hasard = rand() % (50+1);
 
  fprintf(stdout, "Samy Hocine - Programme\n");
  fprintf(stdout, "1 - Jouer\n");
  fprintf(stdout, "2 - Quitter\n\n");
  fprintf(stdout, "Votre choix:");
 
  fgets(choix, sizeof choix, stdin);
  fclean(choix, stdin);
 
  if(!strcmp(choix, "1")==0)
  {
                   return 0;
  }
  else
  {
 
  system(CLEAR);
 
  fprintf(stdout, "Entrez un nombre entre 10 et 20\n\nVotre nombre:");
  fgets(saisie, sizeof saisie, stdin);
  fclean(saisie, stdin);
  snprintf(code, sizeof code, "%i", hasard);
 
  if(strcmp (saisie, code)==0)
  {
            fprintf(stdout, "\n\nVous avez trouve le bon nombre\n\n");
  }
  else
  {
      fprintf(stdout, "\n\nVous n'avez pas trouve le bon nombre\n");
      fprintf(stdout, "Le bon nombre etait %i\n\n", hasard);
  }
 
  pause("Appuyez sur ENTRER pour continuer");
  system(CLEAR);
 
  return main();
 
  }
}
myHeader.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#ifndef MYHEADER_H
#define MYHEADER_H
#ifdef WIN32
   #define CLEAR "CLS"
#elif defined (linux)
   #define CLEAR "clear"
#else
   #error Not defined for this plateforme
#endif
void fclean(char *s_buffer, FILE *stream);
void pause(char const *s_message);
#endif //MYHEADER_H
myHeader.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include "myHeader.h"
void fclean(char *s_buffer, FILE *stream)
{
    if (s_buffer != NULL && stream != NULL)
    {
        char *pc = strchr(s_buffer, '\n');
 
        if (pc != NULL) /* La saisie n'a pas été tronquée */
        {
             /* On remplace '\n' par le caractère nul '\0' */
             *pc = 0;
        }
        else
        {
            /* La saisie a été tronquée, on purge le flux d'entrée */
            int c;
            while ((c = fgetc(stream)) != '\n' && c != EOF)
            {
                  //Rien
            }
        }
    }
}
void pause (const char *s_message)
{
   if (s_message != NULL && strlen (s_message) != 0)
   {
      fprintf (stdout, "%s", s_message);
      fflush (stdout);
   }
   {
      char c[2];
      fgets (c, sizeof c, stdin);
      fclean (c, stdin);
   }
}
Merci d'avance