1

これは可能ですか?

コマンドプロンプトでCOLOR##を使用してそれが可能であることを私は知っています

しかし、流血を使用してCで可能ですか?

ありがとう、

4

2 に答える 2

2

どのオペレーティング システムですか。利用できる端末は?これは流血はおろか、C とは何の関係もないことに注意してください。端末が色として解釈することを選択する場合としない場合がある文字列を出力します。端末でそれを行う方法を確認する必要があります。もちろん、ソリューションは移植可能ではありません。エスケープ シーケンスをサポートする端末の例の 1 つは、次のとおりです。

printf("\\x1b[1;33mThis is yellow\\x1b[m(Back to default)\n");

ANSI 端末のカラー エスケープ シーケンスに興味があるかもしれません

限られた数の端末でそれを行うライブラリを探すこともできます。たとえば、ncursesは Linux で役立ちます。

于 2012-05-31T16:45:15.360 に答える
1

*nix、osx、またはWindowsでcygwin msysを使用している場合、端末はFred Larsonが言及しているANSIシーケンスをサポートする必要があります(osxについてはわかりません)。通常の Windows 端末にはありません。しかし、流血は cygwin を使用できるので、運がいいです。

次に例を示します。

#include <stdio.h>

#define BOLDMAGENTA "\033[1;35m"
#define BOLDGREEN "\033[1;32m"

int main(void) {
    printf("%shello %sworld\n", BOLDMAGENTA, BOLDGREEN);
    return 0;
}

これにより端末は明るい緑色のままになりますが、プロンプトで色が設定されている場合はリセットされることに注意してください。

ANSI エスケープ コードの説明は次のとおりです: http://en.wikipedia.org/wiki/ANSI_escape_code

于 2012-05-31T16:55:25.463 に答える