elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿ Como utilizar %n ?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: ¿ Como utilizar %n ?  (Leído 5,311 veces)
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ¿ Como utilizar %n ?
« Respuesta #10 en: 30 Septiembre 2012, 03:22 am »

Hay que tener mucho cuidado con las afirmaciones que se hacen ...

Lo que expuse en el anterior post es que ese formato no es "aconsejable" ya que depende del compilador que cada uno use.
Honestamente no se donde leíste eso. No recuerdo un documento donde se desaconseje su uso, lo cual es entendible ya que el especificador "%n" es parte del estándar de C desde 1989.


Ya comente que en Code::Blocks no funciona, pero tampoco en Dev-C++, etc, sin embargo en el tal vez menos conocido Pelles C  sí da las salidas esperadas.
Acabo de compilar el programa:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.   int numChars;
  6.   float a = 3.14159;
  7.   int b = 3490;
  8.  
  9.   printf("%f %d%n\n", a, b, &numChars);
  10.   printf("The above line contains %d characters.\n", numChars);
  11.  
  12.   return 0;
  13. }
Con los compiladores Pelles C, Lcc-win32, MinGW (cortesía de Dev-C++) y CygMing (las versiones 3.X y 4.X de gcc incluidas en el entorno Cygwin) y todos generan el mismo resultado:
Código:
3.141590 3490
The above line contains 13 characters.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: ¿ Como utilizar %n ?
« Respuesta #11 en: 30 Septiembre 2012, 08:57 am »

Pues yo lo he compilado con MinGW por consola para Windows y no daba el resultado esperado.

Saludos


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ¿ Como utilizar %n ?
« Respuesta #12 en: 30 Septiembre 2012, 16:03 pm »

¿Que compilador estas utilizando?
¿Puedes publicar el código fuente completo del programa que esta dando resultados incorrectos?

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: ¿ Como utilizar %n ?
« Respuesta #13 en: 30 Septiembre 2012, 16:24 pm »

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.   int numChars;
  6.   float a = 3.14159;
  7.   int b = 3490;
  8.  
  9.   printf("%f %d%n\n", a, b, &numChars);
  10.   printf("The above line contains %d characters.\n", numChars);
  11.  
  12.   return 0;
  13. }

MinGW para Windows
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ¿ Como utilizar %n ?
« Respuesta #14 en: 30 Septiembre 2012, 16:44 pm »

Pues como había dicho, acabo de compilar el programa con:
Lcc-win32
Pelles C
Dev-C++ (utiliza MinGW)
CygMing (la version 3.X y 4.X de gcc para Cygwin)

Y con todos ellos el resultado es el esperado:
Código:
3.141590 3490
The above line contains 13 characters.

La única recomendación que puedo darte es instalar el IDE de nuevo y verificar que este configurado correctamente, para eso alguien mas deberá ayudarte (no tengo instalado Code::Blocks).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ¿ Como utilizar %n ?
« Respuesta #15 en: 30 Septiembre 2012, 17:19 pm »

Pues como había dicho, acabo de compilar el programa con:
Lcc-win32
Pelles C
Dev-C++ (utiliza MinGW)
CygMing (la version 3.X y 4.X de gcc para Cygwin)

Y con todos ellos el resultado es el esperado:
Código:
3.141590 3490
The above line contains 13 characters.
Citar
Me da que "deseas" machacar mis respuestas, querido amigo. Aunque resulte redundante, el susodicho programa no hace lo que se espera de él, en Dev-C++ ,Code::Blocks y compañía, al menos en Windows7, y no sólo lo digo yo, ahí están sinatra y Caster para corroborrarlo. Por mucho que forme parte del C antidiluviano. No me eches a mí la culpa de que no funcione, sólo constato un hecho y pongo en pro que con Pelles C for Windows si "rula" (=funciona, para que no me preguntes otra vez que significa, lo que me lleva a pensar que no eres muy cinéfilo- ).
Que a tí te funciona ... ¡me alegro por tí !, pero a otros no y yo lo que hago es "informarles de por qué: el compilador, el IDE, el sistema operativo o los astros!, vaya usted a saber.
Como casi siempre te conformas con "tirar" una respuesta o comentario sin aportar solución. Se te gradecería que nos digas por qué a nosotros no nos funciona, al menos bajo W7.

P:DMe alegra qu a tí te funcione bajo todos esos programas, yo me tengo que con formar con Pelles C.
Un saludo.

« Última modificación: 30 Septiembre 2012, 17:24 pm por leosansan » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como utilizar el gets
Programación C/C++
TopoJunior 1 2,126 Último mensaje 4 Julio 2012, 10:27 am
por DickGumshoe
como utilizar subme reverse
Foro Libre
el.keylo 0 1,073 Último mensaje 17 Abril 2014, 19:03 pm
por el.keylo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines