"a"的名称查找更改为新的 ISO"for"范围

name lookup of `a' changed for new ISO `for' scoping

本文关键字:ISO for 范围 查找      更新时间:2023-10-16

我正在尝试解决c++中出现的这个错误。我在StackOverflow上看过类似的问题,但我似乎找不到我的特定解决方案的错误。我不知道为什么它不起作用,从我的知识来看,嵌套的for循环工作得很好。如果你有解决办法,请告诉我。

注意:这只是一个代码片段。上面定义了所有变量。

下面是准确的错误信息:
50 C:UsersryangDesktopcheck installUntitled1.cpp name lookup of `a' changed for new ISO `for' scoping
代码:

for(int a = 0; a < 500; a ++)
    assets[a][0] = temp + temp2;
    for(int b = 1; b < 6; b ++)
    {
          userAssets >> temp >> temp2;
          if(temp == "CorporateIT")
                  assets[a][b] = temp2;
          else
          {
              numWorkstations[a] = b;
              break;
          }
    }   
}

当你在for循环中放置一个变量时,它只在for循环中定义。所以当你输入:

for(int a = 0; a < 500; a ++)
    assets[a][0] = temp + temp2;

for循环在分号处结束,因此变量a现在不在作用域中。

你需要的是你的for循环用大括号括起来,以避免这种情况。出于这个原因,我建议总是在for循环周围使用大括号,我公司的编码标准明确要求这样做,以避免遇到您在这里遇到的确切问题。

我想你在第一个for循环之后忘记了左括号({)