[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Ultra OT]Sobre un programa en C



El Sat, 10 Mar 2012 11:31:44 +0100, Lucas Sánchez Sagrado escribió:

> Saludos lista, lo primero disculpas por enviar este pedazo de Off-topic,
> pero es que ahora mismo no puedo preguntar en otro sitio y este problema
> es de una cierta urgencia.
> Resulta que para un curso de C que estoy haciendo tengo que hacer un
> programa que "compruebe caracteres no válidos en los archivos de texto.
> Los únicos caracteres válidos son los códigos ASCII 10, 13 y 32 ..
> 126.". El programa lo he podido hacer sin problemas, pero (ya me lo
> temía) al leer un carácter no-ASCII (una ñ o una vocal con tilde, por
> ejemplo), toma el siguiente también como no válido y me fastidia el
> programa. He probado a poner combinaciones de break y continue en los if
> anidados, pero eso está claro que no funciona. Si alguien pudiera
> ayudarme se lo agradecería mucho.
> 
> Este es el programa:

(...)

>    while ((c = getc(fichero)) != EOF)
>      {
>        if (c < 32 || c > 126)
> 	{
> 	  if (c != 10 && c != 13)
> 	    {
> 	      printf("Error: carácter no-ASCII detectado. Posición en el fichero: %ld.\n", ftell(fichero));
> 	  value = 1;
> 	 	}
> 		}
>      }
>    if (value == 0)
>      printf("Todos los caracteres leídos eran correctos.\n");

Estás limitando la rutina a los 128 caracteres ascii, si quieres que admita
eñes y acentos tendrás que usar ascii extendido ¿no? :-?

Saludos,

-- 
Camaleón


Reply to: