2016-09-27 3 views
1

conio.htextcolor()関数にユーザー入力色を渡すにはどうすればよいですか?ユーザ入力の色をtextcolor()に渡すにはどうすればよいですか?

textcolor(BLUE); 
cprintf("Hello"); 

正常に動作しますが、

char c[20]; 
gets(c); 
textcolor(c); 
cprintf("Hello"); 

でエラーが発生します。私はそれが自分自身を動作するとは思わなかった。だから問題は、どのようにユーザーがテキストを表示するための色を入力することができますか? いくつかの愚かな制約のため、古いターボC++でこれを行う必要があります。graphics.hdos.hなどを使用することはできません。そのため、textcolor()を使用するソリューションは素晴らしいでしょう。

+0

'BLUE'は文字列ではなく、' gets'を使って読み込まれた値が文字列であることを理解することが重要です。おそらくルックアップテーブルや一連の 'if'文を使って、その文字列を値に変換する必要があります。 – CAB

+0

また、コードが「エラーをスローする」場合は、質問にエラー情報を含めてください。 – CAB

答えて

1

あなたのコードは次のようになります:

char c[20]; 
gets(c); 

if (strcmp("BLACK",c) == 0) {textcolor(BLACK);} 
else if (strcmp("BLUE",c) == 0) {textcolor(BLUE);} 
else if ... more colors here ... 

cprintf("Hello"); 

BLUEを覚えて、それは1 gets()戻りますので、文字列strcmp()関数の整数値に等しいマクロで、文字列ではありません。

関連する問題