#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
。我该怎么办?
答案 0 :(得分:7)
更改
#include <cstdlib>
到
#include <stdlib.h>
cstdlib
是 C ++标头文件,因此在C 中无法使用。
答案 1 :(得分:6)
清除屏幕超出了普通C程序的范围。这取决于操作系统。
对于Windows,您应该查看conio。
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 ++头文件,但它适用于我使用的编译器。