释放和重新分配内存。在 FLTK 中重置多边形
Deallocate and reallocate memory. Resetting Polygon in FLTK
#include "Simple_window.h"
#include "Graph.h"
#include <math.h>
#include <iostream>
#include <limits>
using namespace std;
int main(){
Simple_window win(Point(100,100),600,400,"Marks");
Graph_lib::Polygon poly;
bool over = true;
int n = 0;
while(over){
Marks pp("x");
pp.add(Point(300,200));
cout<<"Enter number of sides (3 or more): ";
while(!(cin>>n)){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Enter number of sides (3 or more): ";
}
if(n<3){
break;
}
//Finding the angle and number of sides...
if(n%2 != 0){
//logic for polygon...
}
}else{
//logic for polygon...
}
}
poly.set_color(Color::magenta); // adjust properties of poly
win.attach (poly); // connect poly to the window
win.attach(pp);
win.wait_for_button(); // Display!
}
}
这个程序是做什么的,它可以制作 n 边形的多边形。在我设置我的多边形之后。我想重置它。在我输入多边形的边数之后。我点击 "next" 它会再次询问我有多少个多边形并重复该过程。有人告诉我打电话删除。但是我不确定如何输入它。如删除 poly.points?或删除多边形?我尝试了一些,但总是出错。
我的第二个问题在第 38 行。最初我有它所以如果我输入一个小于 3 的数字程序将结束。但程序不会结束。所以我不得不使用 break;
if(n<3){
over=false;
cout<<"why wont this end ?"<<endl;
}
boolean over 设置为 true。而真正的循环。如果 n < 3 以上为假。从而结束程序?它不会结束。
如果将声明放在第一个 while 循环中,则无需重置多边形。
while(over){
Graph_lib::Polygon poly;
...
win.wait_for_button();
}
回复:为什么你的程序不会结束。 Break 已经足够好了,但如果你不喜欢使用 break
- 使用继续
- 将循环的其余部分 body 放在 else 子句中
编辑:回复:更改标题:我不知道 Simpe_Window 界面:它不是 FLTK 的一部分 - 它是 Stroustrup 的创作。如果是从FL_Window派生的,使用label(new title).
#include "Simple_window.h"
#include "Graph.h"
#include <math.h>
#include <iostream>
#include <limits>
using namespace std;
int main(){
Simple_window win(Point(100,100),600,400,"Marks");
Graph_lib::Polygon poly;
bool over = true;
int n = 0;
while(over){
Marks pp("x");
pp.add(Point(300,200));
cout<<"Enter number of sides (3 or more): ";
while(!(cin>>n)){
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Enter number of sides (3 or more): ";
}
if(n<3){
break;
}
//Finding the angle and number of sides...
if(n%2 != 0){
//logic for polygon...
}
}else{
//logic for polygon...
}
}
poly.set_color(Color::magenta); // adjust properties of poly
win.attach (poly); // connect poly to the window
win.attach(pp);
win.wait_for_button(); // Display!
}
}
这个程序是做什么的,它可以制作 n 边形的多边形。在我设置我的多边形之后。我想重置它。在我输入多边形的边数之后。我点击 "next" 它会再次询问我有多少个多边形并重复该过程。有人告诉我打电话删除。但是我不确定如何输入它。如删除 poly.points?或删除多边形?我尝试了一些,但总是出错。
我的第二个问题在第 38 行。最初我有它所以如果我输入一个小于 3 的数字程序将结束。但程序不会结束。所以我不得不使用 break;
if(n<3){
over=false;
cout<<"why wont this end ?"<<endl;
}
boolean over 设置为 true。而真正的循环。如果 n < 3 以上为假。从而结束程序?它不会结束。
如果将声明放在第一个 while 循环中,则无需重置多边形。
while(over){
Graph_lib::Polygon poly;
...
win.wait_for_button();
}
回复:为什么你的程序不会结束。 Break 已经足够好了,但如果你不喜欢使用 break
- 使用继续
- 将循环的其余部分 body 放在 else 子句中
编辑:回复:更改标题:我不知道 Simpe_Window 界面:它不是 FLTK 的一部分 - 它是 Stroustrup 的创作。如果是从FL_Window派生的,使用label(new title).