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.

¿El símbolo ‘;’ termina de alguna manera una cadena que se pasa como argumento de línea de comando?

Estoy haciendo un programa que obtiene una entrada de texto desde la línea de comandos. Básicamente, toma cada argumento de la línea de comandos como una cadena, y cada cadena representa una palabra dentro del “texto”, y quiero imprimir el “texto” que se pasa desde la línea de comandos (sin el nombre de mi salida) en la pantalla. Pero si uno de mis argumentos de línea de comandos es una cadena de palabras como ‘Hola;’ o ‘Y)’ , con ‘;’ o ‘)’ al final, como se puede ver, entonces no imprime ‘;’ o ‘)’ etc. Y según lo que veo, ni siquiera reconoce estos símbolos como parte de la cadena que se pasa. Incluso intenté imprimir el símbolo ‘;’ en un ejemplo simple de ‘Hola;’ sólo para ver qué iba a hacer (específicamente escribí algún código para imprimir sólo el último carácter de cada argumento de cadena).
Cuando ejecuto el código desde la línea de comandos de esta manera:
./a.out Hola;
Imprime o en lugar de ;. He intentado imprimir ‘; ‘ por sí solo, sólo imprime nada y obtengo un error para la siguiente cadena después de estos símbolos de ‘;’ , ‘)’ como error de comando no encontrado. Si alguien sabe por qué está sucediendo esto, o cómo puedo hacer que este programa imprima incluso los símbolos de ‘;’ etc. por favor ayúdeme, soy nuevo en C y en la programación en general.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas con el análisis correcto de los argumentos de la línea de comandos. Es probable que los argumentos de la línea de comandos estén siendo analizados como cadenas separadas, por lo que los caracteres ; o ) se interpretan como el fin del argumento.

    Puedes intentar usar una biblioteca como getopt para analizar los argumentos de la línea de comandos. Esta biblioteca te permite especificar qué caracteres deben tratarse como parte del argumento, por lo que puedes incluir los caracteres ; y ).

Comments are closed.