如何在c ++

时间:2017-11-17 00:38:23

标签: c++

因此,我正在制作一个数独求解器,以便对自己进行测试,而且我似乎已经碰壁了。

我试图让用户将值输入到网格中,并且它会每隔几秒自动更新一次,以查看它们放入网格中的下一个值。

我不知道如何将用户输入到网格本身。

这是我的网格代码。

void draw()
{
int given;
cout << endl;
for (int i = 0; i < 13; i++)
{
    for (int j = 0; j <= 9; j++)
    {
        if (j == 0)
        {
            cout << "|";
        }
        if (j == 3 || j == 6 || j == 9 )
        {
            cout << "|";
        }
        if (i == 0 || i == 4 || i == 8 || i == 12)
        {
            cout << "#";
        }
        else
        {
            cout << " ";
        }
    }

    cout << endl;

}

}

为了让这个更新,我有这个循环。

while (gameOver != TRUE)
{
    system("cls");
    draw();
    cout << "\nEnter the next given number, or 0 for a blank space: ";
    Sleep(600);
}

所以我需要帮助获取用户输入值

  1. 在网格上显示

  2. 以任何方式保存(我认为数组可能效果最好?)

  3. 感谢。

2 个答案:

答案 0 :(得分:0)

我个人认为,可视化(和存储)值的最简单方法是使用二维数组。

您可以像这样声明和n * m数组:

babel-plugin-transform-class-properties

然后在for循环中访问这样的元素(i,j)以显示它:

int x[n][m];

答案 1 :(得分:0)

通过这一行,我猜你是在Windows上编程:

system("cls");

所以我的答案将基于此并使用大量的WinAPI。

通常,您可以坚持cin并在用户按Enter后更新网格。但是,由于您需要实时显示刷新,这似乎不是最佳选择。你在Windows上有conio.h所以去吧:

#include <conio.h>
...
char ch;
while (true) {
    while (!kbhit()); // Wait for user input
    ch = getch();
    switch (ch) {
        // Process input here.
    }
}