¿Es posible almacenar un cero inicial en un int?

Tengo una asignación de programación donde necesito cifrar un int de 4 dígitos, ingresado por el usuario. He dividido el int en cuatro valores separados y las funciones de cifrado y descifrado funcionan. Mi problema es cuando puse las cuatro entradas separadas de nuevo, algunos números se cifran a cero (p. Ej., En: 1234 out: 0189) y quiero almacenar la salida en un int para usar con otras funciones.

Ahora mismo tengo una solución a medias que imprime 0 primero si el primer int es 0.

void joinInt(){
    if(int1 == 0) {cout << 0;}
    joined = int1 * 1000;
    joined += int2 * 100;
    joined += int3 * 10;
    joined += int4;
    cout << joined << endl;
    }

Mi objetivo es volver unido (con el cero inicial) en lugar de simplemente imprimirlo dentro de la función.

Respuestas a la pregunta(5)

Su respuesta a la pregunta