Loops c+中的奇怪循环逻辑+; std::cout turnsDefined; 标准::cout
我想做的是: 我正在获取输入并测试它是否只包含数字。如果是 是的,它只是传递循环(设置w循环的变量) 正在检查是否为true)。如果输入不包含字符而不是 数字,它请求另一个输入并警告用户 跳过调试部分,我建议您应该: 我想做的是: 我正在获取输入并测试它是否只包含数字。如果是 是的,它只是传递循环(设置w循环的变量) 正在检查是否为true)。如果输入不包含字符而不是 数字,它请求另一个输入并警告用户 跳过调试部分,我建议您应该:Loops c+中的奇怪循环逻辑+; std::cout turnsDefined; 标准::cout,loops,c++11,logic,Loops,C++11,Logic,我想做的是: 我正在获取输入并测试它是否只包含数字。如果是 是的,它只是传递循环(设置w循环的变量) 正在检查是否为true)。如果输入不包含字符而不是 数字,它请求另一个输入并警告用户 跳过调试部分,我建议您应该: 我想做的是: 我正在获取输入并测试它是否只包含数字。如果是 是的,它只是传递循环(设置w循环的变量) 正在检查是否为true)。如果输入不包含字符而不是 数字,它请求另一个输入并警告用户 跳过调试部分,我建议您应该: 在代码中,初始化“boolForCharIsDigi”的for循
在代码中,初始化“boolForCharIsDigi”的for循环从不更新实际数组:
if( std::all_of( turnsDefined.begin(), turnsDefined.end(), ::isdigit ) )
{
// Correct input
}
else
{
// Warn the user, re-enter stuff
}
问题在于_b是一个临时变量。您需要将其作为参考,如下所示:
for(bool _b : boolForCharIsDigi){
_b = false;
}
可能还有其他问题,但这一个突然出现在我的眼前……-) 在代码中,初始化“boolForCharIsDigi”的for循环从不更新实际数组:
if( std::all_of( turnsDefined.begin(), turnsDefined.end(), ::isdigit ) )
{
// Correct input
}
else
{
// Warn the user, re-enter stuff
}
问题在于_b是一个临时变量。您需要将其作为参考,如下所示:
for(bool _b : boolForCharIsDigi){
_b = false;
}
可能还有其他问题,但这一个突然出现在我的眼前……-) 您是否尝试调试它以检查问题?如果您尝试一步一步地调试,您可以很容易地找到问题的原因。
while(hasPassed!=true)
让我畏缩。@Jepessen我就是这么做的。但是没有帮助,因为我根本无法理解逻辑。这真的很奇怪…@Fredrarson我会改变它的。但是请不要只是为了说这句话而发表评论。您是否尝试调试它以检查问题?如果您尝试一步一步地调试,您可以很容易地找到问题的原因。while(hasPassed!=true)
让我畏缩。@Jepessen我就是这么做的。但是没有帮助,因为我根本无法理解逻辑。这真的很奇怪…@Fredrarson我会改变它的。但请不要只是为了说这句话而发表评论。我真的很感谢你(有效)的回答。然而,我也想找出我在我的原始代码中做错了什么。我真的很感谢你(工作)的回答。然而,我也想找出我在原始代码中做错了什么。