예 사용자 입력 :오류가 올바르게 인쇄되지 않습니다 ..이 논리 흐름이 맞습니까? 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;
}
}
}
실제로 이것은 약간의 코드만으로는 의미가 있는지 모르겠다. 그래서 나는 스도쿠 게임을하고 있는데, 기본적으로 사용자 입력이 필요할 때마다 "enter 이동 " 어떤 종류의 오류가 있으면 그 오류를 진술 한 다음 이전에 보드를 다시 인쇄하고 이동을 묻는 메시지가 나타납니다. 내 논리에 여기 어딘가에 결함이 있습니다 :/ – codefail