【问题标题】:For loop in c++ dllc++ dll中的for循环
【发布时间】:2021-06-27 10:49:49
【问题描述】:

我正在为我的 dll 制作一个验证系统。我只是在尝试不同的东西。
我用过这个

bool allow = false;
std::string Name = "Name";
std::string Allowed[] = {"ye", "lol"};
for (int i = 0; i < sizeof(Allowed); i++)
{
    if (Allowed[i] == Name)
    {
        allow = true;
    }
}

但是 for 循环中的 for 是一个错误。
我不知道为什么,但上面写着expected a decleration

【问题讨论】:

  • allow 定义在哪里?
  • 为什么不使用allow = std::end(Allowed) != std::find(std::begin(Allowed), std::end(Allowed), Name);
  • 它使用 std::end 和 std::begin。我不知道,但我会尝试。但是,如果我允许超过 2 个,它也会起作用吗?

标签: c++ dll


【解决方案1】:
  1. sizeOf 更改为sizeof
  2. 声明允许
bool allow;
std::string Name = "Name";
std::string Allowed[] = {"ye", "lol"};
for (int i = 0; i < sizeof(Allowed); i++)
{
    if (Allowed[i] == Name)
    {
        allow = true;
    }
}

【讨论】:

  • 什么错误,请告诉错误? @YooOoOoOOOOOo
  • 哪个行号出现错误? @YooOoOoOOOOOo
  • @YoooOoOoOOOOOo 试试迈克尔的回答
  • sizeof 给出了字节数,所以这不起作用。
  • @AndersK 是的,我明白了!
【解决方案2】:

试试这个

bool allow;
string Name = "ye";
string Allowed[] = {"ye", "lol"};

int size = sizeof(Allowed)/sizeof(Allowed[0]);

for (int i = 0; i < size; i++)
{
    if (Allowed[i] == Name)
    {
        allow = true;
    }
}

cout << allow;
return 0;

【讨论】:

  • 很好的答案!可能值得添加如何修复原始错误。
猜你喜欢
  • 2013-11-05
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
相关资源
最近更新 更多