gpt4 book ai didi

C++ 用户输入一个字符,变量保持为0

转载 作者:太空狗 更新时间:2023-10-29 20:34:03 25 4
gpt4 key购买 nike

我正在尝试创建一个井字游戏,用户输入一个数字(对应于他想要放置 X 或 O 的位置​​),但接收数字的变量(移动)保持为 0 否不管输入是什么。你能帮我弄清楚要修复什么,以便变量实际接收用户输入的内容吗?这是接收移动的函数的代码:

int FDeclarations::GetMove(){
int Move;
std::cin >> Move;
return Move;}

这是通过 switch 语句的函数的代码(因为变量“Move”始终为 0,所以没有任何作用)

int FDeclarations::PlaceMove(){
switch (Move)
{
case(1):
if (turn == false) { TopLeft = 'x'; }
else { TopLeft = 'o'; }
break;
case(2):
if (turn = false) { TopMid = 'x'; }
else { TopMid = 'o'; }
break;
case(3):
if (turn = false) { TopRight = 'x'; }
else { TopRight = 'o'; }
break;
case(4):
if (turn = false) { MidLeft = 'x'; }
else { MidLeft = 'o'; }
break;
case(5):
if (turn = false) { MidMid = 'x'; }
else { MidMid = 'o'; }
break;
case(6):
if (turn = false) { MidRight = 'x'; }
else { MidRight = 'o'; }
break;
case(7):
if (turn = false) { BotLeft = 'x'; }
else { BotLeft = 'o'; }
break;
case(8):
if (turn = false) { BotMid = 'x'; }
else { BotMid = 'o'; }
break;
case(9):
if (turn = false) { BotRight = 'x'; }
else { BotRight = 'o'; }
break;
}


table();
return 0;
}

这是我的变量声明:

        class FDeclarations
{
public:
int PlaceMove();
int GetMove();
int CheckWin();
void table();

private:
bool turn = false;
int Move;
char TopLeft = '1';
char TopMid = '2';
char TopRight = '3';
char MidLeft = '4';
char MidMid = '5';
char MidRight = '6';
char BotLeft = '7';
char BotMid = '8';
char BotRight ='9';
bool XWin;
bool OWin;
};

最佳答案

在你的函数中

int FDeclarations::GetMove() {
int Move;
std::cin >> Move;
return Move;
}

您声明一个名为 Move变量,它是该函数的本地变量。这与类中声明的成员变量Move不同。 C++ 更愿意绑定(bind)到函数级变量。

除非你在没有给我们看的代码中使用GetMove的返回值来设置成员变量Move,那么成员变量Move code> 永远不会改变,导致你的问题。

关于C++ 用户输入一个字符,变量保持为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51291005/

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