帮我一些c ++代码

时间:2009-11-17 14:00:10

标签: c++

我只想让它更新server_record。不要发送任何混乱。我可以删除所以它不要说“在线玩家的新记录是:2839”。我可以删除query.str(“”)下的所有内容吗?我不知道什么是char缓冲区[50];做。我不想弄乱任何东西。你如何在c ++中获得当前时间?我也想在表格中插入当前时间。设置记录的时间。

void Game::checkPlayersRecord()
{
if(getPlayersOnline() > lastPlayersRecord){
    Database* db = Database::instance();
    DBQuery query;

    lastPlayersRecord = getPlayersOnline();
    query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";";
    db->executeQuery(query.str());
    query.str("");

    char buffer[50];
    sprintf(buffer, "New record of players online is: %d", lastPlayersRecord);
    AutoList<Player>::listiterator it = Player::listPlayer.list.begin();
    while(it != Player::listPlayer.list.end()){
        (*it).second->sendTextMessage(MSG_EVENT_ADVANCE, buffer);
        ++it;
    }
}
}

3 个答案:

答案 0 :(得分:4)

最好让那些知道这些东西的人。你所要求的并不完全是火箭科学,但如果没有经验的人完成,你仍然很容易出错。

答案 1 :(得分:0)

经过随意检查,是的,删除(但不包括)query.str("");下的所有内容。希望您有一种测试方法,然后再推送此更改并打破应用。 :)

答案 2 :(得分:0)

这些块的作用非常明显,所以除非它们有一些隐藏的东西,否则这是用记录值更新数据库的部分。

void Game::checkPlayersRecord()
{
    if(getPlayersOnline() > lastPlayersRecord){
        Database* db = Database::instance();
        DBQuery query;

        lastPlayersRecord = getPlayersOnline();
        query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";";
        db->executeQuery(query.str());
        query.str("");
    }
}