[C con Clase] problema en c

Programante programante en gmail.com
Vie Ago 29 19:58:57 CEST 2008


judit escribió:
> Hola, estoy empezando a auto-estudiar c, me encuentro con un problema que no se si es culpa del compilador o hay algún trozo de código que no tengo claro (le he dado mil vueltas):
>   
Ya te han dado una solución, pero voy a explicar donde está el fallo, 
que ya hay algunos "acusando de brujería" al compilador.

> FILE* pt;
> 	char nombre[]= "prueba.txt";
> pt=	fopen (nombre, "r");
> char c;
> while(fgetc(pt)!=EOF) 
>   
Aquí lees un caracter
> { 
> printf ("%c",fgetc(pt) ); 
>   
Y aquí lees otro caracter y lo imprimes.
> 	 }
>   
 > El problema es que si el archivo prueba.txt tiene editado 123456789, 
me imprime en pantalla 2468, es decir lee los caracteres pares. (lo 
compilo con dev-cpp).
Estás leyendo dos caracteres distintos, de los cuales sólo imprimes uno, 
por eso te imprime sólo los pares.

Si quisieramos mantener esa condición en el bucle, lo que tenemos que 
hacer es no "tirar" ese caracter que leemos:

> FILE* pt;
> char nombre[]= "prueba.txt";
> pt = fopen (nombre, "r");
> char c;
> while( (c = fgetc(pt)) !=EOF) 
> 	printf ("%c", c ); 




Más información sobre la lista de distribución Cconclase