Visual c++ SFML程序中缺少右大括号? 我用C++和SFML编写了一个程序。这个程序应该生成20个红色或蓝色的圆圈,它确实起作用了。然而,我做了一些更改,保存了,几小时后在VS上返回,发现我一直收到一个错误:

Visual c++ SFML程序中缺少右大括号? 我用C++和SFML编写了一个程序。这个程序应该生成20个红色或蓝色的圆圈,它确实起作用了。然而,我做了一些更改,保存了,几小时后在VS上返回,发现我一直收到一个错误:,visual-c++,sfml,Visual C++,Sfml,“{”:第9行未找到匹配的标记 我一直在浏览代码,似乎根本找不到问题所在 代码: 我会进一步解释我的评论,但我不会发布任何修复过的代码。我只是建议一种方法 根据你的代码结构,你似乎试图生成一些随机分布在窗口上的蓝色或红色圆圈,但同时,你试图绘制它们 你应该区分你的实际数据和你的绘图材料 int main(){int main(){ // 1 . Declare your circle vector // 2 . Populate that vector with random

“{”:第9行未找到匹配的标记

我一直在浏览代码,似乎根本找不到问题所在

代码:


我会进一步解释我的评论,但我不会发布任何修复过的代码。我只是建议一种方法

根据你的代码结构,你似乎试图生成一些随机分布在窗口上的蓝色或红色圆圈,但同时,你试图绘制它们

你应该区分你的实际数据和你的绘图材料

int main(){int main(){
    // 1 . Declare your circle vector

    // 2 . Populate that vector with random circles (random position, random color)

    // Now draw those circles
    // 3 . while(window.isOpen()) loop

        // 3.1 Clear the window

        // 3.2 Draw your circles

        // 3.3 Display the stuff

}

第三点,这基本上是一种按顺序画东西的方法。

你在结尾缺少一个结束括号,但是你应该重新检查你所有的括号,确保你在正确的位置结束它们。我认为你有一些不好的缩进,比如说,你的代码非常混乱,你至少有两个意料之外的无限循环。第一个是una请您从whilefind!=20开始切换,因为您在秒for内每次都将find设置为0。第二个无限循环将是whilewindow.isOpen,因为正如它的名称所说,您将一直在那里,直到您的窗口关闭我知道我在某个地方缺少了一个大括号,但我看不到问题,这是我的问题。而且,这两个都应该是inf初始循环。第一个循环直到找到一个可以工作的位置,只需要1-3次尝试。第二个循环应该是这样的,否则你永远无法正确关闭窗口。我想我可以暂停一下以降低应变。如果你只是想画一次圈,我想你错过了关闭支架即使是第32行和第33行。看起来你在缩进代码,但是第29行需要大括号。这就是我所做的,除了第3行。我知道第一个SFML示例在等参循环中绘制形状,但这真的很愚蠢。这不仅是错误的,而且会诱使新用户认为它没问题。如果你说清楚了,就绘制并显示我在循环中,它将在最短的时间内绘制尽可能多的形状。运行仅绘制低分辨率圆的示例,导致程序占用我30%的CPU使用率。将绘制移出循环或添加暂停将其降低到0%。哦,我不会生成圆并同时绘制它们。我是g生成它们一次,然后在它们全部生成后再绘制一次。不要粗鲁,但如果你不知道SFML,你不应该试图回答。@Anoraki如果你每次都不清除draw display,你将无法绘制移动的内容。如果你我不确定这是否是你的情况,你想移动你的圆圈,你将被迫清除并删除它每次重画。
int main(){int main(){
    // 1 . Declare your circle vector

    // 2 . Populate that vector with random circles (random position, random color)

    // Now draw those circles
    // 3 . while(window.isOpen()) loop

        // 3.1 Clear the window

        // 3.2 Draw your circles

        // 3.3 Display the stuff

}