实例用户输入:错误不能正确打印。这个逻辑流程是否正确? C++
PA1 9 //correct
PJ1 9 //wrong, error printed "Invalid row" because it is not between A and I
PA11 9 //wrong, error printer "Invalid column" because it is not between 1 and 9.
我遇到的问题是,它应该清除剩余的输入,然后要求用户输入“移动”了,而事实并非如此。
我哪里错了?我一直在这一段时间,仍然没有得到进展..
void clearInput()
{
cin.clear();
}
bool getCoords(int & x, int & y)
{
char row;
while(true){
cin>>row>>y;
row=toupper(row);
if(/*(id=='P' || id=='p' || id=='D' || id=='d') && */row>='A' && row<='I' && isalpha(row) && y>=1 && y<=9){
x=row-'A';
y=y-1;
return true;
}
else if(!(y>=1 && y<=9)){
cout<<"Invalid column\n"<< endl << endl;
cout<<y;
clearInput();
cout<<y;
//return false;
}
else{
cout<<"Invalid row\n"<< endl << endl;
clearInput();
//cout<<x<<y;
//return false;
}
}
}
实际上,我不知道这是否只是一点代码有意义.. 因此,我正在研发一款Sudoku游戏,基本上每当需要任何类型的用户输入时,它都会询问“enter一个移动“ 如果有任何一种错误,它应该说明错误,然后再次打印板,因为它是以前,并要求输入一个移动.. 我的逻辑是有缺陷的地方在这里:/ – codefail 2010-04-03 20:31:57