Как нарисовать круг на с++?
Вот - простой способ:#include <GL/glut.h>
#include <math.h>
// compile:
// gcc -Wall -Wextra -Werror -lglut -lGL -lm -std=gnu99 -D_GNU_SOURCE opengl.c -o openglcircle

#define _U_    __attribute__((__unused__))
// exit by ctrl+q or escape
void keyPressed(unsigned char key, _U_ int x, _U_ int y){
	int mod = glutGetModifiers(); // window = glutGetWindow()
	if(mod == GLUT_ACTIVE_CTRL && key == 'q') exit(0);
	else if(key == 27) exit(0);
}

void DrawCircle(float cx, float cy, float r, int num_segments){
	float theta = 2. * M_PI / (float)num_segments;
	float c, s, t, x = r, y = 0.;
	sincosf(theta, &s, &c);
	glBegin(GL_LINE_LOOP);
	for(int ii = 0; ii < num_segments; ii++){
		glVertex2f(x + cx, y + cy);
		t = x;
		x = c * x - s * y;
		y = s * t + c * y;
	}
	glEnd();
}

void display(){
	glClear(GL_COLOR_BUFFER_BIT);
	DrawCircle(0.,0.,0.5,100);
	glFlush();
}

int main(int argc, char** argv){
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(400, 400);
	glutCreateWindow("A Simple Circle");
	glutDisplayFunc(display);
	glutKeyboardFunc(keyPressed);
	glutMainLoop();
}
А, извиняюсь, про С++ не заметил. Ну да ладно, все равно я С++ не знаю и знать не хочу!
P.S. А вот - чистая консолька:#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *drawCircle(int R, int geom){
	if(R > 200 || R < 1) return NULL;
	int S, i, Y = 2 * R + 2;
	if(geom)
		S = Y * (R + 1);
	else
		S = Y * (Y - 1);
	char *buf = malloc(S+1);
	if(!buf) return NULL;
	memset(buf, ' ', S);
	buf[S] = 0;
	for(i = Y-1; i < S; i+=Y) buf[i] = '\n';
	inline void DrawPixel(int x, int y){
		if(geom){
			if(y%2==0) buf[Y * y/2 + x] = '*';
		}else{
			buf[Y * y + x] = '*';
		}
	}
	// Bresenham's circle algorithm
	int x = R;
	int y = 0;
	int radiusError = 1-x;
	while(x >= y){
		DrawPixel(x + R,   y + R);
		DrawPixel(y + R,   x + R);
		DrawPixel(-x + R,  y + R);
		DrawPixel(-y + R,  x + R);
		DrawPixel(-x + R, -y + R);
		DrawPixel(-y + R, -x + R);
		DrawPixel(x + R,  -y + R);
		DrawPixel(y + R,  -x + R);
		y++;
		if (radiusError < 0){
			radiusError += 2 * y + 1;
		}else{
			x--;
			radiusError += 2 * (y - x) + 1;
		}
	}
	return buf;
}

int main(int argc, char **argv){
	int i, R;
	char *buf;
	for(i = 1; i < argc; i++){
		if(!(buf = drawCircle(R = atoi(argv[i]), 1))){
			printf("Wrong parameter %s\n", argv[i]);
			continue;
		}
		printf("\nCircle with R = %d:\n%s\n", R, buf);
		free(buf); buf = NULL;
	}
	return 0;
}
Алгоритм Брезенхэма, второй аргумент функции drawCircle задает поправку на геометрию терминала: если у вас вдруг в терминале высота буквы равна ширине, то пишите 0, если же высота в 2 раза больше ширины, пишите 1.
В консольном? А в никсах консоль вообще графику поддерживает?