#include #include rec(); main() { int a, fact; char q, n, y; printf("\nEnter any number "); scanf("%d", & a); fact = rec(a); printf("Factorial value = %d\n", fact); printf("do you want to exit.....(y/n):"); scanf("%s" ,&q); if (q == 'n') { system("cls"); main(); } else return 0; } rec(int x) { int f; if (x == 1) return 1; else f = x * rec(x - 1); return f; }
J’utilise des blocs de code mais je ne sais pas comment effacer l’écran. J’ai cherché puis trouvé le system("cls");
dans le fichier d’en-tête #include
, mais il indique l’erreur cstdlib: no such file of directory
. Que devrais-je faire ?
Effacer l’écran ne relève pas du programme C normal. Cela dépend du système d’exploitation.
Pour les fenêtres, vous devriez regarder dans conio .
Pour unix, cherchez des malédictions ou des termios .
system()
lance toujours un sous-shell qui peut avoir ou non un effet sur l’environnement du programme parent. Vous avez besoin d’un appel système , mais pas d’ un appel system()
.
Je n’ai pas toujours su ça. Une fois (il y a longtemps), j’ai suggéré dans comp.lang.c que quelqu’un devrait essayer system("exit");
pour fermer la fenêtre autour du programme DOS. Mais cela ne peut bien sûr pas fonctionner. Et on m’a rapidement conseillé de tester mon code avant de poster. 🙂
Changement
#include
à
#include
cstdlib
est un fichier d’en-tête C ++ et sera donc inutilisable en C.
vous avez beaucoup de problèmes dans votre code ….
mais pour le problème spécifique, essayez #include
utilisez le #include
qui définit la fonction d’écran clair.
Pour utiliser system("cls")
vous avez besoin de l’en-tête
. Cela permettra à tous les types system()
de s’exécuter. Je ne sais pas s’il s’agit d’un fichier d’en-tête C ++, mais cela fonctionne pour le compilateur que j’utilise.