Alinear texto para centrar en cadena C ++

He estado tratando de hacer una función en C ++ para una DLL de servidor de juegos que alinee el texto dado al centro antes de devolver la nueva cadena a Lua para su procesamiento. He pasado bastante tiempo mirando ejemplos en varios sitios, pero solo he podido encontrar 'cout', que lo imprime en la aplicación de la consola, que no quiero que haga.

Soy nuevo en C ++, y estoy realmente confundido sobre cómo abordar esto. Si alguien pudiera dar un ejemplo y explicar cómo funciona, podré aprender cómo hacerlo para el futuro.

Básicamente, hace esto:

Reenvíe nuestra cadena de Lua a C ++.C ++ centra la cadena que acabamos de reenviar.Devuelve la cadena completa a Lua.

Aquí hay una muestra de lo que he estado tratando de hacer:

int CScriptBind_GameRules::CentreTextForConsole(IFunctionHandler *pH, const char *input)
{
    if (input)
    {
        int l=strlen(input);
        int pos=(int)((113-l)/2);
        for(int i=0;i<pos;i++)
            std::cout<<" ";
        std::cout<<input;
        return pH->EndFunction(input); 
    }
    else
    {
        CryLog("[System] Error in CScriptBind_GameRules::CentreTextForConsole: Failed to align");
        return pH->EndFunction();
    }
    return pH->EndFunction();
}

El cual construye pero imprime el texto en la consola, no reenviando la cadena completa.

Respuestas a la pregunta(2)

Su respuesta a la pregunta