¿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 programa

Espero que puedan ayudarme, estoy ansioso por avanzar y me veo atrasado por esto. Gracias.

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 wink

#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 confuso

quilloquepasa escribió:

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 wink

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

mrsuperstar escribió:
#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 confuso

*****...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.

mrsuperstar escribió:

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 confuso

Al fallar el analizador sintactico ya no se corre el analizador semantico

Pato Silva escribió:
mrsuperstar escribió:

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 confuso

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 wink

memoKnto escribió:
Pato Silva escribió:
mrsuperstar escribió:

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 confuso

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):

  • Nivel lexico: travajo, fabor, hoygan, etc no pasarian el analisis lexico, simplemente la palabra está mal escrita.
  • Nivel sitactico: hola favor siempre camino arbol: las palabras son correctas pero la forma de combinarlas no lo es.
  • Nivel semantico (o gramatico): Y mientras los rayos bailaban bajo el cielo verde de Arabia, los elefantes vuelan y polinizan las calderas .: las palabras están bien articuladas pero semanticamente es incorrecto (vamos, que no tiene sentido)

Creo que era mas o menos asi... hace ya tiempo que no estudio LP