c ++空间问题

时间:2011-02-27 14:36:42

标签: c++

如果它有空格,为什么这个命令不起作用?

我想像alani hur upalani hur down那样使用它,但它不起作用,我尝试将命令重命名为alanihur只是为了看看它是否有其他问题但是它有效但我做了那个如此。

为什么我没有空间?

blabla.h

bool Levitate(Creature* creature, const std::string& cmd, const std::string& param);

blabla.cpp

{"alani hur",&Commands::Levitate}


bool Commands::Levitate(Creature* creature, const std::string &cmd, const std::string &param)
{

 if(param == "up"){
     Position newPos = creature->getPosition();
     newPos.z--;
     if(g_game.internalTeleport(creature, newPos) == RET_NOERROR){
        g_game.addMagicEffect(newPos, NM_ME_ENERGY_AREA);       
    return true;
    }
 }
 else if(param == "down"){
                  Position newPos = creature->getPosition();
newPos.z++;
Tile* tile = g_game.getTile(newPos.x, newPos.y, newPos.z);      
if(tile && tile->creatures.size() != 0){
    newPos.x++;
}

if(g_game.internalTeleport(creature, newPos) == RET_NOERROR){
        g_game.addMagicEffect(newPos, NM_ME_ENERGY_AREA);

    return true;
}

 }

 return false;
}

非常感谢,并且在我的英语不好的情况下将其解雇了

2 个答案:

答案 0 :(得分:1)

如果你的程序使用令牌系统来解析命令,并将空间视为分隔符,那么这就是为什么空格具有这种效果的一种解释。

答案 1 :(得分:1)

该命令被解析为一个String,然后,该空间产生了很大的不同。鉴于你正在研究这种类型的程序,你必须明白这一点。

如果你需要绝对分开alani和hur这两个词,你可以添加一个下划线,使其看起来像alani_hur。