繁体   English   中英

验证用户输入以确保其为二进制(C ++)

[英]Validating a user's input to make sure it's in binary (C++)

我正在使用C ++程序,我需要将0-255(含)之间的二进制数字作为字符串(必须是字符串)。 我可以在while(输入无效)循环中写些什么来检查字符串是否在00000000到11111111(含)之间。 非常感谢

假设您使用std::string

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

也就是说,如果您真的希望它始终为8个字符。 调整以适合您的口味(就我的评论而言,您希望str.length()<=8(!str.empty()) && str.length()<=8

我建议您使用std::bitse t

如果您的字符串始终包含位,即仅** 01,那么您可以使用**

bitset <8> bitOfStr(string(“ 01011”)); //从字符串bitset <8>初始化bitOfStr(YourStringhere);

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

在位上,您可以更高效地执行其余操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM