如何将用户输入颜色传递到textcolor()?

问题描述:

如何将用户输入颜色传递给conio.h中的textcolor()函数?如何将用户输入颜色传递到textcolor()?

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

工作正常,但

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

抛出一个错误。我没有想到它会自己工作。所以问题是,用户如何输入文字的颜色来显示? 由于一些愚蠢的约束,我必须在旧的turbo C++上执行此操作,因此无法使用graphics.hdos.h等。因此,使用textcolor()本身的解决方案将非常好。

+0

理解“BLUE”不是一个字符串,其中使用'gets'读取的值是一个字符串。您需要将该字符串转换为值,可能使用查找表或一系列“if”语句。 – CAB

+0

此外,当代码“抛出错误”时,请在您的问题中包含错误信息。 – CAB

您的代码将是这个样子:

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()功能的整数值的宏。