Autor
|
Tema: ¿ Como utilizar %n ? (Leído 5,912 veces)
|
sinatra
Desconectado
Mensajes: 4
|
Hola, me pueden ayudar a utilizar el especificador de formato %n, he buscado en google, pero solo dicen como utilizar otros especificadores de formato, y no %n
De antemano gracias
Saludos.
|
|
|
En línea
|
|
|
|
Caster
|
No lee nada. Mira este link: http://beej.us/guide/bgc/output/html/multipage/scanf.htmlSaludos. EDITO: Te dejo aqui un ejemplo para que veas como funciona: #include <stdio.h> int main() { int x; char linea[] = "hola"; return 0; }
En este codigo se tendria que pedir primero que se ingrasase un entero, pero como el espefificador es "%n" se salta el scanf, y pasa directamente a escribir "hola". Saludos
|
|
« Última modificación: 29 Septiembre 2012, 20:05 pm por Caster »
|
En línea
|
|
|
|
sinatra
Desconectado
Mensajes: 4
|
Pero está relacionado con la salida por printf(). En la pagina anterior del lick que me enviaste dice como utilizarlo, ademas pone un ejemplo, pero me parece que el ejemplo no esta bien. El ejemplo es el siguinte: int numChars; float a = 3.14159; int b = 3490; printf("%f %d%n\n", a, b, &numChars); printf("The above line contains %d characters.\n", numChars);
Si puedes arreglarlo...gracias. Ademas tengo una definicion de un libro que habla de la salida por printf() y dice: %n : El argumento asosiado es un putero a entero al que se asigna el numero de caracteres escritos hasta que aparece %n Saludos.
|
|
|
En línea
|
|
|
|
Caster
|
Pues es simple, muestra el numero de caracteres escritos hasta donde esté "%n". Aunque yo estoy probando este codigo: #include <stdio.h> int main() { int numChars; int a = 1; int b = 12; printf("%d %d\n %n", a , b , &numChars ); printf("The above line contains %d characters.\n", numChars ); return 0; }
Y no me da bien el resultado, no se por qué. Saludos
|
|
« Última modificación: 29 Septiembre 2012, 21:53 pm por Caster »
|
En línea
|
|
|
|
sinatra
Desconectado
Mensajes: 4
|
Y no me da bien el resultado, no se por qué.
Bueno, gracias por responder, asi se que no soy el unico al que le pasan estas cosas.
|
|
|
En línea
|
|
|
|
Caster
|
He probado a cambiar el tipo de numChar, he probado con float, double, cadena de caracteres, etc pero sigue dando mal el resultado.
Saludos
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
El ejemplo es el siguiente: #include <stdio.h> int main() { int numChars; float a = 3.14159; int b = 3490; printf("%f %d%n\n", a, b, &numChars); printf("The above line contains %d characters.\n", numChars); }
La salida es : 3.141590 3490 The above line contains 13 characters.
Y el siguiente código: #include <stdio.h> int main() { int val; printf("blah %n blah\n", &val ); return 0; }
da como salida: blah blah val = 5
Como ves da los caracteres hasta ese punto.PERO, eso es usando el compilador PellesC, porque en Code::Blocks nada de nada, las variables se llenan de "basura".Saludos.
|
|
|
En línea
|
|
|
|
Caster
|
La salida es : 3.141590 3490 The above line contains 13 characters.
Eso deberia ser lo correcto, pero a mi no me sale eso. Saludos.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Lo que expuse en el anterior post es que ese formato no es "aconsejable" ya que depende del compilador que cada uno use. 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. Saludos.
|
|
|
En línea
|
|
|
|
Caster
|
Aaah vale vale, ya me quedo claro, muchas gracias.
Saludos
|
|
|
En línea
|
|
|
|
|
|