2
#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。我该怎么办 ?

4

5 回答 5

9

改变

#include <cstdlib>

#include <stdlib.h>

cstdlibC++ 头文件,因此在 C 中将不可用

于 2013-02-27T02:13:26.433 回答
7

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

对于 Windows,您应该查看

对于 unix,请查看

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


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

于 2013-02-27T05:27:18.303 回答
4

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

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

于 2013-02-27T02:13:40.917 回答
-1

使用#include<stdlib.h>那是定义清除屏幕功能的地方。

于 2016-05-23T23:22:20.360 回答
-1

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

于 2016-11-01T18:27:06.053 回答