C++ 为什么此函数不返回或打印任何内容?
“R3+2-1R2+1-1R2+0-2”是我的输入,我试图计算字符串输入中阳性测试的总数(正负号后的值)。我认为函数可能正在进入一个无限循环,但我不确定为什么C++ 为什么此函数不返回或打印任何内容?,c++,C++,“R3+2-1R2+1-1R2+0-2”是我的输入,我试图计算字符串输入中阳性测试的总数(正负号后的值)。我认为函数可能正在进入一个无限循环,但我不确定为什么 int posiTests(字符串结果) { //串联器 字符串结果; 对于(size_t i=0;i!=results.size();i++) { 如果(结果[i]!='') { 结果C+=结果[i]; } } //阳性试验R3+2-1R2+1-1R2+0-2 int j=1; 字符串测试; 而(j这里我对内部循环进行了一些修改,以确保
int posiTests(字符串结果)
{
//串联器
字符串结果;
对于(size_t i=0;i!=results.size();i++)
{
如果(结果[i]!='')
{
结果C+=结果[i];
}
}
//阳性试验R3+2-1R2+1-1R2+0-2
int j=1;
字符串测试;
而(j这里我对内部循环进行了一些修改,以确保j
正确递增
for (size_t j = 0; j < resultsc.size(); ++j)
{
if (resultsc[j] != '+')
{
continue;
}
while (j < resultsc.size() && resultsc[j] != '-')
{
if (isdigit(resultsc[j]))
{
postests += resultsc[j];
}
j++;
}
}
for(size_t j=0;j
对于给定的示例,这将打印“210”。如果您希望使用“3”(2+1+0),则需要在while循环完成时调用stoi(postests)
。while(resultsc[j]!='-')
可能是一个无限循环,因为j
在isdigit(resultsc[j])
为true时不会更新。未来的bug:while