gpt4 book ai didi

C 停止前显示两次

转载 作者:行者123 更新时间:2023-11-30 15:43:21 26 4
gpt4 key购买 nike

这是被调用的函数:

    int onBattle(int level,char nomeheroi[20])
{
const char *monsternames[4][3] = {
{"Rat","Bat","Spider"},
{"Goblin","Orc","Dwarf"},
{"Dragon","Lich","Banshee"},
{"Demon","Hydra","Giant Spider"}
};
//printf("monster hp:%f , player hp:%f, player name:%s ",globalvar.monterhp, globalvar.playerhp,nomeheroi);
char opcaobattle;
rndMonster(level);

while((globalvar.monterhp > 0) || (globalvar.playerhp > 0)){
printf("Monster name:%s\n",monsternames[globalvar.monstercatego][globalvar.monsternivel]);
printf("Monster Life:%f\n",globalvar.monterhp);
printf("------------------------------------------\n");
printf("----------------BattleGround--------------\n");
printf("------------------------------------------\n");
printf("Player name:%s\n", nomeheroi);
printf("Player life:%f\n", globalvar.playerhp);
printf("----------------------------------------\n");
printf("------------------Menu------------------\n");
printf("----------------------------------------\n");
printf("A - Attack\n");
printf("D - Defend\n");
scanf("%c",&opcaobattle);
switch(opcaobattle)
{
case 'a':
danoPMonster();
break;

case 'd':

break;
}
}

if(globalvar.monterhp <= 0)
{
return 0;
}
else if(globalvar.playerhp <= 0)
{
return 1;
}
}

事情是这样的: Show two times

在 Scanf 上停止之前,我对这段代码显示两次没有任何问题,我也尝试过 Do While,但同样的事情发生了,有什么帮助吗?ps:globalvar是一个全局结构,是的,有一个值

最佳答案

    scanf("%c",&opcaobattle);

我建议在转换说明符中添加一个空格,以确保它没有使用流中剩余的换行符。

    scanf(" %c",&opcaobattle);

开关也有默认情况可能会很好:

default:
printf("Please enter one of the available commands.\n");

关于C 停止前显示两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com