Para limpiar la pantalla puedes hacer algo mas o menos asi:
#ifdef __WIN32__ || __MSDOS__
system("cls");
#endif
#ifdef __unix__
system("clear");
#endif
Claro que no sera tan portable, pero __unix__ abarca muchos sistemas operativos por lo que puede servir.
Otra cosa SÚPER IMPORTANTE NO UTILIZAR GOTO.
goto es un problema solo cuando es mal utilizado, puede que muchas veces hayan opciones mucho mas eficientes (while, for, do...while) pero en ciertos casos hay que utilizarlo.
Pero en este caso no lo veo necesario xd. Si por ahora quiere que no se detenga nunca puede hacer esto:
while(1) {
Cls(); // Para no utilizar system("Cls");
current[size] = current [0];
for ( i = 0; i < size; i++ ) {
cout << current[i];
if (i != size) current[i]= current[i+1];
}
Simplemente espera a que 1 sea igual a 0 lo cual jamas ocurrira
O tambien se puede hacer:
for(;;) {
Cls(); // Para no utilizar system("Cls");
current[size] = current [0];
for ( i = 0; i < size; i++ ) {
cout << current[i];
if (i != size) current[i]= current[i+1];
}
Punto importante: si un while, for, o lo que sea solo contiene una instruccion, mejor que no pongas los parentesis.
Ejemplo:
if(a<b) {
std::cout << "Hola!" << std::endl;
} //Esto queda un poco raro y aveces ilegible, ademas de usar espacio de mas
if(a<b)
std::cout << "Hola!" << std::endl;
//ocupa mucho menos espacio