我已经在Linux(Ubuntu MATE)上的Eclipse中构建了一个C程序。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 100,d1,d2,d3;
system("clear");
while(num <= 500)
{
d1 = num % 10;
d2 = (num % 100) / 10;
d3 = num /100;
if(num == (d3*d3*d3) + (d1*d1*d1) + (d2*d2*d2))
printf("%d \n", num);
num = num + 1;
}
return 0;
}
构建它时我没有收到任何错误,但是当我按下运行按钮执行它时,它会显示
“所需项目中存在错误。继续启动?”
然后我按下yes按钮,它在Eclipse控制台中提供以下输出:
153
370
371
407
TERM environment variable not set.
但是当我在一个真正的终端中执行这个程序时,它运行正常并给出以下内容:
这里输出文字: -
153
370
371
407
但这里的行“TERM环境变量未设置”。没有显示。它只发生在eclipse终端。为什么会这样?
我也可以使用真正的配对终端代替eclipse控制台吗?
答案 0 :(得分:4)
输出可能来自clear
。为了将正确的序列发送到终端以清除屏幕,它需要知道终端类型并使用TERM
环境变量。在eclipse中,你没有真正的终端,也没有设置TERM
变量。
话虽这么说,不要从你自己的程序中执行clear
。它提出了一个无法获得的进程,无法移植到非* nix平台,打破了普通工具只会写输出而不删除任何内容的假设,并且,如您所见,取决于环境。
如果您确实需要控制终端作为屏幕,请查看curses
library。