ncurses嵌入double for循环时出现c的printw bug,c ++

时间:2018-08-16 06:00:44

标签: c++ ncurses

我正在用c ++做一个简单的游戏,输出到控制台。我使用ncurses为此使用printw。要打印网格,我有一个for循环,如下所示:

for (int j; j < height + 2; j ++){
    for (int i; i<width+2; i++){
        printw("#");
    }
    printw("\n");
}

此输出仅是#的一行。起初我以为可能与可变高度有关,所以我将其替换为22。同样,失败的结果。然后,我物理上输入了两个for循环,如下所示:

for (int i; i<width+2; i++){
    printw("#");
}
printw("\n");
for (int i; i<width+2; i++){
    printw("#");
}

我有两行#!真是奇怪的错误。我也尝试了while循环,但结果却一样。我是C ++的新手,我来自python,所以我可能在这里缺少一些显而易见的东西。预先感谢!

2 个答案:

答案 0 :(得分:1)

您没有将变量初始化为DocumentSnapshot document = ... Map<String, Object> items = (Map<String, Object>) document.get("items"); Set<String> keys = items.keySet(); ,因此它们可以是任何东西!像这样重写它:

0

答案 1 :(得分:1)

在Python中,for循环用于遍历序列(即列表,元组或字符串)。这不太像其他编程语言中的for关键字,而更像其他面向对象的编程语言中的iterator方法。

C ++中传统的for循环不同于Python的循环。 (有一个for版本,称为C ++ 11中引入的基于范围的for,类似于Python。)

在C ++中,必须先初始化for循环中声明的变量,然后才能使用它们,否则行为将是意外的。