Título: Simulación de Compilador Pascal Publicado por: el_lujo en 25 Febrero 2015, 18:52 pm Saludos, señores.
quisiera orientación sobre un problema que no puedo resolver en un programa en c/c++, el cual debo simular la primera línea del compilador pascal. Donde tengo problemas es en la supresión de los espacios en blanco a la izquierda de la cadena, ejm. suponiendo que la primera linea es: program NombrePrograma; Quiero suprimir cualquier espacio en blanco que tenga esta línea a la izquierda y derecha. Adjunto lo que he logrado en conjunto con otros compañeros. Con ayuda de la internet, agregué una función que por sí sola suprime los espacios, pero no sé por qué no me resulta igual agregandola al código. sé que algo esta mal pero no puedo verlo. Gracias. Código
Mod: Cuando publiques código, usa las etiquetas GeSHi Título: Re: Simulación de Compilador Pascal Publicado por: engel lex en 25 Febrero 2015, 20:17 pm modifiqué tu código le puse etiquetas GeSHi, procura usarlas al publicar código
estás haciéndolo en C++ y es algo que puede ser complejo, recomiendo el uso de librerías apropiadas para ello... Código
y yo haría el trim así Código
te ahorras un montón de código complicado y los problemas a que char sea limitado... no se olvide que es namespace std Título: Re: Simulación de Compilador Pascal Publicado por: el_lujo en 25 Febrero 2015, 20:41 pm Gracias, engel lex.
Mis disculpas por mi ignorancia; no estaba claro sobre publicar códigos. Ya lo tendré pendiente. Sobre la ayuda que me acabas de dar, estoy muy agradecido. Mi problema es que soy novato en C/C++ y por tal razón estoy aprendiendo en la marcha. Para estar claro, el código que me hiciste iría en la función, cierto? Gracias y discúlpame de nuevo. Título: Re: Simulación de Compilador Pascal Publicado por: engel lex en 25 Febrero 2015, 20:49 pm no iría en la función XD es la función
en lugar de Código
usas esa... luego de los includes coloca Código
para que no tengas ningún problema y te recomiendo revisar un poco sobre las variables tipo string en C++ para facilitearte el lio a demás evita el uso de conio.h ya que no pertenece a las librerías standard Título: Re: Simulación de Compilador Pascal Publicado por: el_lujo en 25 Febrero 2015, 21:17 pm Excelente.
Gracias por el consejo y por la enseñanza. Mano a la obra. Título: Re: Simulación de Compilador Pascal Publicado por: el_lujo en 25 Febrero 2015, 21:48 pm Ufff!!
engel lex, no me siento mal al reconocer que soy un burro, pero ahora estoy algo confundido. Me confundo donde al final me retorna (i,f). Tengo que tener en cuenta que al resultado de las eliminaciones de espacios yo pueda tomarle el tamaño de la cadena para poder hacer las comparaciones si me faltara 'PROGRAM', 'NombreArchivo' y ';'. *Nota: Cambié: Código
por: Código
Así lo tengo luego de tu ayuda: Código
Título: Re: Simulación de Compilador Pascal Publicado por: engel lex en 26 Febrero 2015, 19:04 pm hay un problema... string no es realmente compatible con char... la cosa es usar uno u otro, sin embargo si quieres convertir de string a char es
Código
ahora a los errores en tu codigo error 1: strlen está en la librería <cstring> que no es lo mismo que <string> (ni es directamente compatible con) declarala si quieres usar esa funcion error 2: al main no le veo return... debe tenerlo... error 3: pusiste string trim(cCadena) al aire en tu codigo no está haciendo nada... ella retorna un string... error 4: no usar gets, se asume descontinuado y en standard c11 fue eliminado definitivamente, usa fgets que es el más similar (revisa como se usa) o cin (de iostream) más comodo para leer desde consola error 5: la linea 37 hace del siguien if suyo y al estar relacionada con "i" posiblemente genere error error 6: cCad nunca fue usado, aún así lo metes en un if sobre mi código, veo que no lo entendiste del todo, lo comento Código
lo que te decía era mudar tu codigo completo a string porque es más facil manejarlo... resumo un pedacito de tu programa para que veas como sería haciendolo en c++ con funciones de alto nivel Código
la cosa es que necesitas saber lo basico de string (http://www.cplusplus.com/reference/string/string/?kw=string) y de iostream (http://www.cplusplus.com/reference/iostream/) Título: Re: Simulación de Compilador Pascal Publicado por: _Enko en 27 Febrero 2015, 15:27 pm Un toque offtopic, pero "program" no es una sentencia obligatoria en pascal. :silbar:
Muchos programas pueden no tenerla. Saludos. Título: Re: Simulación de Compilador Pascal Publicado por: el_lujo en 28 Febrero 2015, 13:02 pm Buen día.
Pido disculpas por la demora en atender las publicaciones. Gracias engel lex, definitivamente tienes razón. Mi problema esta en que debo aprender más de C++. Como decía en el principio, soy un super novato y es por eso que mi comprensión de las funciones, métodos, clases y, por supuesto mi lógica, es muy débil. Tomaré en cuenta primero estudiar bien los string e iostream. Gracias, _Enko por tu comentario. Tienes razón sobre el uso no obligatorio de PROGRAM. Sin embargo, como es una simulación de ese compilador se pide eso, no para hacerlo ver como obligatorio, sino para ayudarnos a encontrar estos problemas, osea uso de las cadenas, en el que ustedes, especialmente engel lex, han dado tanta ayuda. Engel lex, luego de que comentaste los códigos comprendí mucho mejor de la lógica y cómo debe tomarse en cuenta. |