好的我在这里遇到问题。我正在制作一款幻灯片益智游戏。玩家被问到他想移动哪个棋子,直到拼图解决。如果玩家想要退出,请输入Q
或q
,然后按enter
即可。该程序工作得很好。但我有一个问题:如果我插入CTRL+Z
,该计划将loop
意外......CTRL + Z使程序循环无限地在C++中
这是一个重要的一段代码:
// analyzes user input
if (piece_to_move_string == "q" ||
piece_to_move_string == "Q")
{
cout << endl << "You chose to quit." << endl;
pressanykey();
break;
}
else
{
piece_to_move = atoi(piece_to_move_string.c_str());
if (1 <= piece_to_move && piece_to_move <= pow(puzzle_size,puzzle_size))
{
game_board = move_piece (game_board, piece_to_move);
}
else
{
cout << "Not possible.";
}
}
编辑:但仍然无法正常工作..
// analyzes user input
if (piece_to_move_string == "q" ||
piece_to_move_string == "Q")
{
cout << endl << "You chose to quit." << endl;
pressanykey();
break;
}
else if (cin.eof())
{
//do nothing
}
else
{
piece_to_move = atoi(piece_to_move_string.c_str());
if (1 <= piece_to_move && piece_to_move <= pow(puzzle_size,puzzle_size))
{
game_board = move_piece (game_board, piece_to_move);
}
else
{
cout << "Not possible.";
}
}
删除一切,但必需品。 – 2013-03-22 20:35:05