#include <stdio.h>
#include <cstdlib>
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;
}
I'm using code blocks but I don't know how to clear the screen. I searched then found system("cls");
within header file #include<cstdlib>
, but it shows the error cstdlib: no such file of directory
. What should I do ?
use the
#include<stdlib.h>
that's where the clear screen function is defined.Clearing the screen is outside the purview of a normal C program. It depends on the operating system.
For windows, you should look into conio.
For unix, look into curses or termios.
system()
always launches a sub-shell which may or may not have any effect on the environment of the parent program. You do need a system-call, but not asystem()
call.I didn't always know this. I once (long ago) suggested in comp.lang.c that someone should try
system("exit");
to close the window around the DOS program. But that, of course, cannot work. And I was quickly advised to test my code before posting. :)To use
system("cls")
you need the header<iostream>
. This will allow allsystem()
types to execute. Unsure if it is a C++ header file, but it works for the compiler that I use.Change
to
cstdlib
is a C++ header file, and thus will be unusable in C.you have lots of problems in your code....
but for the specific problem, try
#include <stdlib.h>