我正在为C中的我的raytracer解析器工作,该解析器读取用户输入(描述场景)。我希望用户能够在一个颜色写在这个格式:根据用户输入确定颜色
sphere:
{
position: 0, 0, 0
radius: 1
color: white
}
我想给用户多种选择。在过去,在其他项目中的颜色,我用十六进制格式定义的颜色像这样一个大的头文件:
# define BLACK 0x000000
...
但我不能完全通过我的定义迭代,并比较用户输入.. 阅读用户输入并确定用户给出的颜色的最实用方法是什么?请记住,我有几十个和几十种颜色,我希望能够轻松添加新的颜色。我还挺想避免这样做,每一个颜色:
if (!strcmp(user_input, "red"))
return (0xFF0000);
if ...
但莫不是在循环用颜色和值预定表这样的一条可行之路?
来自@Christian Ceballos(没有足够的代表评论):你可以尝试一个嵌套for循环? –
你可以尝试一个嵌套for循环? –