我正在制作一个简单的程序,用户需要输入一些可能的字符。我希望可能的输入只有i,c,l,v,h,k,f,s,x。我意识到我可以做类似的事情:
%d
但是,我很确定有更优雅的解决方案。我猜是会涉及到枚举。有人会这么善意告诉我,因为我找不到关于这个主题的任何内容。
答案 0 :(得分:3)
一个简单的解决方案可能是:
const string allowed{"iclvhkfsx"};
while ( cin.get(a) && allowed.find(a)== string::npos)
cout << "Incorect input, try again ! ";
代码循环,直到输入有效的char(或达到eof)。
通过使用basic_string<T>
(demo for integers),可以将此类解决方案推广到除字符之外的其他数据类型。当然,switch
完全有效,但我认为只要不同的输入通常需要不同的处理,它的好处就更高。