如何从简单的C程序中清除屏幕?

时间:2013-02-27 02:11:14

标签: c coding-style header

#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;
}

我正在使用代码块,但我不知道如何清除屏幕。我搜索后在标题文件system("cls");中找到#include<cstdlib>,但它显示错误cstdlib: no such file of directory。我该怎么办?

5 个答案:

答案 0 :(得分:7)

更改

#include <cstdlib>

#include <stdlib.h>

cstdlib C ++标头文件,因此在C 中无法使用。

答案 1 :(得分:6)

清除屏幕超出了普通C程序的范围。这取决于操作系统。

对于Windows,您应该查看

对于unix,请查看

system()总是启动一个子shell,它可能会对父程序的环境产生影响,也可能不会产生任何影响。您执行需要系统调用,但 system()来电。


我并不总是知道这一点。我曾经(很久以前)在comp.lang.c中建议有人应该尝试system("exit");来关闭DOS程序周围的窗口。但是,这当然是行不通的。我很快被建议在发布之前测试我的代码。 :)

答案 2 :(得分:4)

你的代码中有很多问题....

但针对具体问题,请尝试#include <stdlib.h>

答案 3 :(得分:0)

使用定义了清除屏幕功能的$heroku run rake db:migrate

答案 4 :(得分:-1)

要使用system("cls"),您需要标题<iostream>。这将允许执行所有system()类型。不确定它是否是C ++头文件,但它适用于我使用的编译器。