¿Cómo que parásitos en mi código, qué es eso? [Solucionado]
Publicado: 10 Junio, 2009 - 21:16 ¿Cómo que parásitos en mi código, qué es eso? [Solucionado]
Hola a todos. Me veo detenido en mi aprendizaje de C por un pequeño problema que se que debe tener una fácil solucion, solución la cual después de tanto tiempo de pensar y leer no he podido conseguir. El problema es que mis códigos me rechazan los caracteres tales como \ | etc diciéndome que son parásitos. A continuación les pongo el código y lo que devuelve la consola.
I wish you can help me:
Este es el código(bueno en realidad un pedazo de él):
#include <stdio.h>
main(){
for (i=0; i<lim-1 && (c=getchar()) != \n && c != EOF; ++i)
s[i] = c;
}Esto es lo que me devuelve el compilador:
error: ‘\’ parásito en el programaEspero que puedan ayudarme, estoy ansioso por avanzar y me veo atrasado por esto. Gracias.
- Inicie sesión o regístrese para enviar comentarios
- 1194 lecturas


Desconozco programar en C, pero creo que \n es una orden de salto de línea y lo estás introduciendo entre un operador de comparación para la sentencia for. Que alguien me corrija si me equivoco.
Saludos
#include <stdio.h>main(){
for (i=0; i<lim-1 && (c=getchar()) != \n && c != EOF; ++i)
s[i] = c;
}
que hace ese salto de linea \n dentro del ciclo???? la comparación falla.
EDITO:
quillo se me ha adelantado, pero como no te documentes y evites inventar cosas raras esos parásitos luego pasan a bugs y eso termina en tragedia (no te pagan... xD)
EDITO2:
me extraña que sea solo ese error el que te devuelve el compilador, yo no veo por ningún lado la declaración de variables
Desconozco programar en C, pero creo que \n es una orden de salto de línea y lo estás introduciendo entre un operador de comparación para la sentencia for. Que alguien me corrija si me equivoco.
Saludos
Quilloquepasa, estas completamente en lo cierto. Se llaman caracteres de escape y el error es que los estas usando sin comillas (simples) que definene que se trata de un char.
es decir que debes manejarlos así '\n' etc
#include <stdio.h>main(){
for (i=0; i<lim-1 && (c=getchar()) != \n && c != EOF; ++i)
s[i] = c;
}
que hace ese salto de linea \n dentro del ciclo???? la comparación falla.
EDITO:
quillo se me ha adelantado, pero como no te documentes y evites inventar cosas raras esos parásitos luego pasan a bugs y eso termina en tragedia (no te pagan... xD)
EDITO2:
me extraña que sea solo ese error el que te devuelve el compilador, yo no veo por ningún lado la declaración de variables
*****...que razón tienes. jajaja espero que haya recortado el codigo. si no es que tenemos grandes problemas. jaja
tu codigo esta a punto de darme una migraña, que es lo que quieres hacer?, los valores de las variables no estan asignados, lo que intentas contar son los espacios o los saltos de linea?, por que ese codigo es tan feo?, por que no mejor usar un ciclo condicional? contadores y flags...???
pues la primera respuesta que di fue por que mire en el codigo cual era el motivo puntual de la falla, pero aparentemente la falla eres tu, estas aprendiendo, pero ve tomando buenas costumbres y si comentas el codigo mucho mejor.
EDITO2:
me extraña que sea solo ese error el que te devuelve el compilador, yo no veo por ningún lado la declaración de variables
Al fallar el analizador sintactico ya no se corre el analizador semantico
EDITO2:
me extraña que sea solo ese error el que te devuelve el compilador, yo no veo por ningún lado la declaración de variables
Al fallar el analizador sintactico ya no se corre el analizador semantico
Interesante. No sería el lexico el que debería fallar al no reconcer los simbolos 'c' e 'i'?
Vieron lo del fin de linea \n no es un error en si mismo, el error era no ponerlo entre las dichosas comillas, esto no lo imventé yo, lo estoy sacando de un libro pdf. Con el código no cojan lucha que es solo un pedazo que yo recorté: el pedazo en donde se encontraba el error. Gracias por la respuesta, la atencion y la ayuda.
Salu2 ;)
En ese caso ¿Se considera el hilo como solucionado? Gracias.
Saludos
EDITO2:
me extraña que sea solo ese error el que te devuelve el compilador, yo no veo por ningún lado la declaración de variables
Al fallar el analizador sintactico ya no se corre el analizador semantico
Interesante. No sería el lexico el que debería fallar al no reconcer los simbolos 'c' e 'i'?
A riesgo de invadir el hilo... un leguaje de programación no es muy distinto a un lenguaje natural, hay varios niveles en el que puedes analizar un texto escrito en un lenguaje (cualquiera sea el lenguaje):
Creo que era mas o menos asi... hace ya tiempo que no estudio LP