Foros del Web » Programación para mayores de 30 ;) » C/C++ »

La funcion scanf

Estas en el tema de La funcion scanf en el foro de C/C++ en Foros del Web. Hola a todos, yo se que por ejemplo con gets y getc si lo utilizamos mas de una vez tenemos que liberar el buffer, pero ...
  #1 (permalink)  
Antiguo 04/09/2010, 06:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 8 meses
Puntos: 1
La funcion scanf

Hola a todos, yo se que por ejemplo con gets y getc si lo utilizamos mas de una vez tenemos que liberar el buffer, pero con scanf cuantas veces tienen que pasar para que yo lo tenga que liberar??? gracias
  #2 (permalink)  
Antiguo 04/09/2010, 19:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: La funcion scanf

¿Liberar el buffer? ¿mandeee?
  #3 (permalink)  
Antiguo 06/09/2010, 01:53
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: La funcion scanf

Hasta donde yo sé, scanf lee caracteres hasta que encuentra un retorno de carro/fin de línea y, luego, procesa los correspondientes al formato que se le ha indicado. Si sobran caracteres, los descarta. No es necesario vaciar el buffer.
  #4 (permalink)  
Antiguo 06/09/2010, 02:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: La funcion scanf

scanf() no funciona así.
Consume todo lo consumible en función del patrón pasado, y lo que no consume lo deja en el buffer de entrada.
Si la cadena es "15 gatos", scanf("%d",....) lee "15" y deja " gatos" (los espacios no los tiene en cuenta).


Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.  
  5.     int a ;
  6.     char b[500] ;
  7.  
  8.     scanf ("%d",&a) ;
  9.     printf("%d",a) ;
  10.     scanf ("%s",b) ;
  11.     printf("%s",b) ;
  12.     return 0 ;
  13. }

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:31.