How to clear screen from simple C program?

雨燕双飞 提交于 2019-12-06 15:31:03

问题


#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 ?


回答1:


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 a system() 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. :)




回答2:


Change

#include <cstdlib>

to

#include <stdlib.h>

cstdlib is a C++ header file, and thus will be unusable in C.




回答3:


you have lots of problems in your code....

but for the specific problem, try #include <stdlib.h>




回答4:


use the #include<stdlib.h> that's where the clear screen function is defined.




回答5:


To use system("cls") you need the header <iostream>. This will allow all system() types to execute. Unsure if it is a C++ header file, but it works for the compiler that I use.



来源:https://stackoverflow.com/questions/15102976/how-to-clear-screen-from-simple-c-program

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!