Pues me acuerdo que yo en modo texto lo hacía de esta manera para turbo c++:
    
Código c++:
Ver originalvoid centrar(int x, int y, char t[])
{ 
  int s=0;
  s=40-s/2;
  if(x==0&&y!=0)
  { gotoxy(s,y);
    cprintf(t);
  }
  else
  { 
    if(x!=0&&y==0)
    { gotoxy(x,12);
      cprintf(t);
    }
    else
    { 
       if(x==0&&y==0)
      { gotoxy(s,12);
    cprintf(t);
      }
    }
   }
}
  
Donde x es la columna, y la fila y t el texto que queramos centrar. Si x = 0 entonces se centrará de acuerdo a las columnas, si y vale 0 se centrará de acuerdo a las filas y si ambas valen 0 el texto se colocará en medio tanto para filas y columnas. Espero te haya sido de ayuda.