[C con Clase] especificador de formato %n

cesar arias sinatra435 en hotmail.com
Dom Sep 30 00:43:51 CEST 2012




> Date: Sat, 29 Sep 2012 17:06:14 -0400
> From: srd4121 en njit.edu
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] especificador de formato %n
> 
> Hola César,
> 
> 2012/9/29 cesar arias <sinatra435 en hotmail.com>:
> > Hola, me ayudan a utilizar el especificador de fomato %n. Tengo el siguiente
> > codigo, pero no muestra el resultado que esperaba:
> >
> > #include <stdio.h>
> >
> > int main() {
> >
> >     int numChars;
> >         int a = 1;
> >         int b = 12;
> >
> >         printf("%d %d %n", a, b, &numChars);
> >         printf("\nThe above line contains %d characters.", numChars);
> >
> >     return 0;
> > }
> >
> > Se supone que numChars almacena la el numero de caracteres escritos asta
> > donde esta %n, pero no es lo que sucede.
> >
> 
> El problema es que estás usando la versión de 'printf()' de MS-Windows
> Vista/7. Para arreglar un problema de seguridad usando %n, por
> defecto, su versión de 'printf()' ignora %n. Si quieres habilitar este
> especificador, entonces tienes que invocar la función,
> '_set_printf_count_output()', de MS-Windows, con un entero distinto de
> 0 (cero). Por ejemplo,
> 
> 
> int main()
> {
>   _set_printf_count_output( 1 );
>   ...
>   printf( "%d %d %n", a, b, &numChars );
>   ...
> }
> 
> Y ahora funcionará debidamente. Claro que en otras plataformas, esto
> no es un problema.
> 
> Ahora bien, con el ejemplo que has puesto, puedes guardar el entero
> retornado por 'printf()' para saber la cantidad total de caracteres
> impresos.
> 
> 
> Espero que esto aclare la duda.
> 
> Steven
> 
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Lo del problema de seguridad lo explica todo.

Trato de utilizar la funcion '_set_printf_count_output()' pero me sale un mensaje que dice que esta indefinida.

NOTA: estoy utilizo el compilador Dev C++.

Grasias.

 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120929/44b60e2c/attachment.html>


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