2017-05-30 28 views
0

Linux(Ubuntu MATE)のEclipseでCプログラムをビルドしました。eclipse "TERM環境変数が設定されていません"

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

私はそれを構築するとき、私はすべてのエラーを得ることはありませんが、私は実行ボタンを押すことによって、それを実行すると、それは

言う「エラーは、必要なproject.Continueの打ち上げに存在します?」

それから私はイエスボタンを押すと、それはEclipseのコンソールで次のような出力が得られます。

153 
370 
371 
407 
TERM environment variable not set. 

しかし、私は本当の端末でこのプログラムを実行すると、それが正常に動作し、次与えます: output

ここ

は、テキストで出力されます: -

153 
370 
371 
407 

しかし、彼女のe "TERM環境変数が設定されていません"という行。示されていない。これは、Eclipse端末でのみ発生します。なぜこうなった?

また、コンソールの代わりに実際の相手端末を使用できますか?

+0

テキストのテキストとして、画像ではない! – Olaf

答えて

5

出力はおそらくclearです。画面をクリアするために正しいシーケンスを端末に送信するためには、端末タイプを知っていなければならず、端末タイプにはTERM環境変数が使用されています。 eclipseでは、実際の端末がなく、TERM変数が設定されていません。

つまり、自分のプログラムからclearを実行しないでください。それは利益のためにプロセスをフォークし、非* nixプラットフォームに移植可能ではなく、通常のツールは単に出力を書き出し、何も削除しないという仮定を壊します。

実際に端末として画面を制御する必要がある場合は、curses libraryをご覧ください。

+0

してください、私は私の質問の最後に新しい行を追加しました、私は実際の端末を使用することはできますか? – voldimot

関連する問題