【发布时间】:2014-11-30 04:58:49
【问题描述】:
我创建了一个数独游戏,您将在其中输入行号,然后输入列号。我设置了一个 if else 条件,即只输入数字 1-9。我在输入数字后使用了 getch 函数而不是 cin 以避免使用 enter 按钮。
但是当我在行中输入 1 时,它不会接受它并打印数字 49。我对此进行了研究,了解到 getch 函数用于获取字符,如果输入 1,它将转换为 ' 1' 相当于整数 49。我找到了一个解决方案,方法是使用 getch() -'0' 而不是只使用 getch();
它可以工作,但我似乎无法理解有关它如何工作的解释。有人可以解释一下 getch() -'0' 的工作原理吗?
这里是我使用 getch() -'0' 的地方:
cout << "Enter row: "; row = getch() -'0';
if(row > 9 || row < 1) {
cout << "Rows 1 to 9 only!" << endl;
Sleep(1000);
system("cls");
loop -= 1;
} else {
cout << row << "\nEnter column: "; column = getch() -'0';
if(column > 9 || column < 1) {
cout << "Columns 1 to 9 only!" << endl;
Sleep(1000);
system("cls");
loop -= 1;
}
【问题讨论】:
标签: c++