es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo configuro el marcador de línea donde comenzará mi cadena? setw() no logra lo que necesito.

¿Cómo establezco el marcador de línea donde comenzará mi cadena en C ++? setw () no logra lo que necesito. Necesito que la cadena comience en un punto determinado y termine cuando sea necesario, parece que setw () hace exactamente lo contrario. Enviaré cómo debe verse el resultado final. Ignore los detalles para obtener los números deseados del archivo de entrada ya que ya tengo todo. Simplemente no puedo formatearlo correctamente en la pantalla de impresión o en el archivo de salida.

Aquí está mi código hasta ahora. No estoy seguro de qué está sucediendo que no me permite hacer que coincida con el ejemplo anterior. He intentado todas las combinaciones de setw (), left, right, internal, etc.

Puede que aún no esté en orden, pero estaba más preocupado por asegurarme de tener todo primero y luego preocuparme por el formato y el orden. (Mi ofstream está en formato de comentario mientras imprimo la pantalla para verificar mi progreso. Eventualmente se usará. También sé que mi archivo no se está cerrando al final.)

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para establecer el marcador de la línea donde comenzará la cadena, puede utilizar las funciones setfill() y setw() en C ++.

    Primero, debe determinar la distancia total desde el inicio de la línea hasta donde desea que comience su cadena. Digamos que en su imagen de ejemplo, desea que la cadena comience a 32 espacios desde el principio de la línea.

    Esto se puede lograr utilizando la función setw() con el valor 32, seguido del manipulador left para justificar su cadena a la izquierda. Luego, use setfill() para rellenar el espacio en blanco antes de su cadena con el carácter . (según su imagen de ejemplo).

    Entonces, por ejemplo:

    cout << setw(32) << left << setfill('.') << "Patient1" << endl;
    

    Esto producirá la salida de “Patient1” con el marcador de línea comenzando a 32 espacios desde el inicio de la línea, y el espacio en blanco se rellena con puntos.

    Puede ajustar el valor 32 según sus necesidades, dependiendo de dónde desee que su cadena comience en la línea.

Comments are closed.