gpt4 book ai didi

c++ - Eclipse CDT 顾问中的奇怪输出

转载 作者:太空宇宙 更新时间:2023-11-04 11:59:06 24 4
gpt4 key购买 nike

当我运行我的程序时,我在 eclipse CDT 上得到以下信息:

There are 11 sticks left.

3
Enter Move:*stopped,reason="end-stepping-range",frame={addr="0x004015b4",func="_fu4___ZSt3cin",args=[],file="..\src\PlayerUser\PlayerUser.cpp",fullname="C:\Users\...\Desktop\workspace_eclipse\StickGame\src\PlayerUser\PlayerUser.cpp",line="26"},thread-id="1",stopped-threads="all"

“Enter Move”之前的所有内容都有意义,但其余部分没有意义。出现这个之后一直让我输入东西,但是程序好像卡住了。

我有很多代码,所以这里只是相关的部分:

主要功能:

int main() {
int sticks = 10;

PlayerUser u(sticks);
PlayerComputer c(sticks);

StickGame game (u, c);
game.startGame(11);
return 0;
}

函数:PlayerUser::getMove

int PlayerUser::getMove(int n_left){
int on = 0;

while(true){
cout << "There are " << n_left << " sticks left." << endl;
cout << "Enter Move:" << flush; //where error occurs
cin >> on;
if(on <= 3 && on >= 1)
break;
}

setMove(n_left, on);
return on;
}

据我所知,它似乎与“详细控制台模式”有关,但我不明白那是什么或如何修复它。

最佳答案

每次在 cout 之后立即使用 cin 时,我在调试器中遇到同样的问题,最后我通过添加 << endl;cout

之后
bool isDone()
{
char c;
cout << "Enter 'Y' if food is done:";
cin >> c;
return ((c == 'Y') || (c == 'y'));
}

这会产生如下错误:

*stopped,reason="end-stepping-range",frame=...

但这工作得很好:

bool isDone()
{
char c;
cout << "Enter 'Y' if food is done:" << endl;
cin >> c;
return ((c == 'Y') || (c == 'y'));
}

关于c++ - Eclipse CDT 顾问中的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887668/

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