验证用户的输入以确保它是二进制的(C ++)

时间:2009-09-27 20:09:54

标签: c++ validation

我正在研究一个c ++程序,我需要接受一个0-255的二进制数,包括一个字符串(它必须是一个字符串)。我可以在一段时间(输入无效)循环中写什么来检查字符串是否在00000000到11111111之间(包括两者)。非常感谢

2 个答案:

答案 0 :(得分:5)

假设您使用std::string

while( str.length()==8 && str.find_first_not_of("01")==std::string::npos )

也就是说,如果你真的希望它总是8个字符。根据您的喜好进行调整(根据您的评论,我想要str.length()<=8(!str.empty()) && str.length()<=8

答案 1 :(得分:0)

我建议你使用 std::bitse t

如果你的字符串总是包含位,即只有** 0 1 你可以使用**

位集&LT 8是氢; bitOfStr(字符串( “01011”)); //从字符串初始化 位集&LT 8是氢; bitOfStr(YourStringhere);

注意:如果字符串包含其他任何内容,那么在bitset长度之前0/1将通过异常。

on bitset 您可以更有效地执行其余操作。