日食 "TERM environment variable not set"

eclipse "TERM environment variable not set"

我已经在 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;
}

我构建它时没有收到任何错误,但是当我通过按 运行 按钮执行它时,它说

"Error exist in required project.Continue launch?"

然后我按下是按钮,它在 Eclipse 控制台中给出以下输出:

153 
370 
371 
407 
TERM environment variable not set.

但是当我在真实终端中执行该程序时,它 运行 没问题,并给出以下信息:

这里是文本输出:-

153 
370 
371 
407 

但是这里没有显示行"TERM environment variable not set."。它只发生在 eclipse 终端。为什么会这样?

我还可以使用 real mate 终端而不是 eclipse 控制台吗?

输出可能来自clear。为了向终端发送正确的序列以清除屏幕,它需要知道终端类型并为其使用 TERM 环境变量。在 Eclipse 中,您没有真正的终端,也没有设置 TERM 变量。

也就是说,不要从您自己的程序中执行 clear。它 fork 一个没有收益的进程,不可移植到非 *nix 平台,打破了普通工具只会写入输出而不删除任何东西的假设,并且如您所见,取决于环境。

如果您确实需要像屏幕一样控制终端,请查看 curses library