Título: Ayuda con interprete de mi propio lenguaje de script sencillo Publicado por: harry_the_blogger en 28 Octubre 2014, 01:12 am Hola, amigos. Estoy desarrollando un programa que rellena las casillas de un array con una X según la posicion y las ordenes que se indiquen desde un fichero de texto que actúa como script.
En cuanto al programa, mi único problema está en la parte en donde interpreta los scripts. Voy dividiendo linea por linea usando strtok(...), y hasta ahí todo bien. Copio el contenido del puntero que devuelve strtok hacia un buffer de 16 caracteres para no tener que preocuparme por cosas raras con punteros. El problema viene cuando intento usar strcmp(...) para ver si la linea actual coincide con la instruccion "fill" o "inc_x". Cuando lo hace, el programa crashea. ¿Podría alguien ayudarme a solucionar mi problema, o darme una mejor idea de como hacerlo? Gracias de antemano Código
Fichero de prueba usado (escribir su ruta en la linea de comandos como parametro despues del nombre del ejecutable): Código
Título: Re: Ayuda con interprete de mi propio lenguaje de script sencillo Publicado por: T. Collins en 28 Octubre 2014, 02:08 am Te crashea o no compila? Porque para usar strcmp, strcpy etc tienes que incluir #include <string.h>, y has utilizado mal "strncpy" porque solo admite dos argumentos.
Cambiando eso he conseguido que me compile, pero no he probado si hace lo que quieres. Título: Re: Ayuda con interprete de mi propio lenguaje de script sencillo Publicado por: rir3760 en 28 Octubre 2014, 02:28 am Porque para usar strcmp, strcpy etc tienes que incluir #include <string.h> Cierto, falta ese encabezado.y has utilizado mal "strncpy" porque solo admite dos argumentos. La función strncpy es parte de la biblioteca estándar de C.Un problema con ella es que copia los caracteres del origen al destino, como máximo los indicados por su tercer argumento pero si copia ese máximo no agrega el terminador de cadena '\0', en su lugar se puede utilizar la función sprintf en la forma: Código
Un saludo Título: Re: Ayuda con interprete de mi propio lenguaje de script sencillo Publicado por: T. Collins en 28 Octubre 2014, 02:47 am Cierto, falta ese encabezado. La función strncpy es parte de la biblioteca estándar de C. Un problema con ella es que copia los caracteres del origen al destino, como máximo los indicados por su tercer argumento pero si copia ese máximo no agrega el terminador de cadena '\0', en su lugar se puede utilizar la función sprintf en la forma: Código
Un saludo Tienes razón, no conocía strncpy y al cambiar todo a la vez y ver que compilaba ni probé por qué lo había puesto él así. Gracias por la aclaración. Título: Re: Ayuda con interprete de mi propio lenguaje de script sencillo Publicado por: harry_the_blogger en 29 Octubre 2014, 00:49 am Gracias por responder. No he podido solucionarlo!! He tratado de hacer lo que me dijo TCollins
Cierto, falta ese encabezado. La función strncpy es parte de la biblioteca estándar de C. Un problema con ella es que copia los caracteres del origen al destino, como máximo los indicados por su tercer argumento pero si copia ese máximo no agrega el terminador de cadena '\0', en su lugar se puede utilizar la función sprintf en la forma: Código
Un saludo Pero aún así falla. ¿Podría alguien decirme alguna otra forma de conseguir comparar la linea actual con una instruccion??? Gracias. |