Hay algunas opciones, y la que desee depende del contexto.
La forma más sencilla es
std::cout << text << i;
o si usted quiere esto en una sola línea
std::cout << text << i << endl;
Si está escribiendo un programa único de roscado y si no lo está llamando el código mucho (donde "mucho" es miles de veces por segundo), entonces has terminado.
Si está escribiendo un programa de subprocesos múltiples y más de un hilo está escribiendo para cout, este simple código puede ocasionarle problemas. Supongamos que la biblioteca que viene con el compilador hizo que el hilo de cout sea lo suficientemente seguro como para que no se interrumpa ninguna llamada individual. Ahora digamos que un hilo está usando este código para escribir "Jugador 1" y otro está escribiendo "Jugador 2". Si tienes suerte, se obtiene lo siguiente:
Player 1
Player 2
Si tienes la mala suerte que podría obtener algo como lo siguiente
Player Player 2
1
El problema es que std :: cout < < texto < < i < < endl; se convierte en 3 llamadas de función. El código es equivalente a la siguiente:
std::cout << text;
std::cout << i;
std::cout << endl;
Si en cambio utilizó el printf al estilo de C, y de nuevo su compilador proporciona una biblioteca de tiempo de ejecución con hilo de seguridad razonable (cada llamada a la función es atómica), entonces el siguiente código funciona mejor:
printf("Player %d\n", i);
ser capaz de hacer algo de una sola llamada de función permite la biblioteca io proporcionar sincronización debajo de las sábanas, y ahora toda su línea de texto se escribirá atómicamente.
Para programas simples, std :: cout es genial. Agregue el subprocesamiento múltiple u otras complicaciones y el printf con menos estilo comienza a verse más atractivo.
¡Ha, es mejor que pueda usar uno de esos! – jjnguy
Además, la palabra adecuada aquí es 'concatenar/agregar un entero a una cadena' – Gishu
que podría agregar a la cadena dígito por dígito ... – user2971569