小编ton*_*ony的帖子

如何识别C++ while循环中的最后一次迭代?

我如何制作,以便最后一个玩家名称没有,这样的:

Player online:
Jim, John, Tony
Run Code Online (Sandbox Code Playgroud)

并不是

Player online:
Jim, John, Tony,
Run Code Online (Sandbox Code Playgroud)

我的代码是:

bool Commands::whoIsOnline(Creature* c, const std::string &cmd, const std::string &param)
{
Player* player = dynamic_cast<Player*>(c);

if (player)
{
    player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "Players online: ");
    AutoList<Player>::listiterator iter = Player::listPlayer.list.begin();
    std::string info;
    int count = 0;

    while (iter != Player::listPlayer.list.end())
    {
        info += (*iter).second->getName() + ", ";
        ++iter;
        ++count;

        if (count % 10 == 0)
        {
            player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, info.c_str());
            info.clear();
        }
    }

    if (!info.empty())
        player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, info.c_str());
}

return true;
}
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
2
解决办法
2296
查看次数

标签 统计

c++ ×1