Ayuda por favor con cadenas en C C+

#1
Me dejaron de trabajo realizar el algorimo de los cuadrados medios en C C++

ya tengo toda esta parte del codigo lo que no se y no puedo haceres extraer los digitos del centro, alguien puede ayudarme a terminarlo , saludos :D

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <string>
#include <math.h>

using namespace std;

int main()
{
int Lado ; // Izq = 1 , Der = 0;
string stdCadena;
int Long_Cadena;
int Salto;
int T_Digit;
long R;
int Cantidad;
int N;

Lado = 1; // Izq = 1 , Der = 0;
stdCadena ="";
Long_Cadena = 0;
Salto = 0;
R = 0;

printf("Digita la cantidad de iteraciones\n");
scanf("%d",&Cantidad);
printf("Digita la cantidad de numeros que usara la semilla\n");
scanf("%d",&T_Digit);
printf("Metodo del Cuadrado Medio\n");
int j = 0;
printf("Digite una Semilla que contenga %d ",T_Digit);
printf("digitos\n");
scanf("%d",&N);

while (j <= Cantidad)
{
R=(long)pow(N,2);

stdCadena = (char) R;
//Cadena = (char) R;
j++;
//printf("R["+j+"] = " + N + "^2 = " + Cadena);
printf("R[%d] = %d ^2 = %d\n",j,N,R);
//sprintf("%c",Cadena);
// tomamos el tamaño de la cadena
Long_Cadena = stdCadena.length();
// Dejamos fuera el ".0" de la cadena
if (Long_Cadena> 2) {
if ((Long_Cadena - T_Digit) == 1 ) {
T_Digit = T_Digit - 1;
}
// Obtenemos el salto de cadena
Salto = (Long_Cadena - T_Digit) / 2;
if (((Long_Cadena - T_Digit) % 2) != 0) {
Salto = Salto + Lado;
} // fin del if
// Obtenemos los numeros que solo necesitamos
stdCadena = stdCadena.substr(Salto,Salto+T_Digit);
// Convertimos la cadena a entero
//printf(" ==\n",Cadena);
//sprintf("%c",Cadena);
//N = Integer.parseInt(Cadena);
}else {
//break;// romper ciclo while
}
Salto = 0; }
getch();
}
 
Arriba