• Domingo 15 de Diciembre de 2024, 07:39

Autor Tema:  Problema con scanf ¨_¨ auxilio  (Leído 1483 veces)

isma3l

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema con scanf ¨_¨ auxilio
« en: Domingo 3 de Octubre de 2010, 22:52 »
0
Hola no soy de pedir ayuda en los foros pues prefiero encontrar yo mismo la rpta, solo en excepciones comoesta lo hago. :huh:

Estaba repasando C para un trabajo pero algo anda mal.
El codigo que puse no es el programa que hice, sino uno super simple para  que me entiendan rapidamente y no lean mi codigo secreto ^_^ :

int main(){

char car='S';

while(   toupper(car)   == 'S' ){
char nombre[10];
printf("ingresa un nombre:  ");
scanf("%s",nombre);
printf("el nombre es:  %sn",nombre);
printf("quieres escribir otro nombre");
scanf("%c",&car);
}
}

El problema es que luego que muestra: "quieres escribir otro nombre"    el programa finaliza y no me da chance de escrbir el caracter,
pero si repito el scanf como:
scanf("%c",&car);scanf("%c",&car);

Ahi si me deja escribir, no entiendo porquepasa, si saben me dirian porque...

Gracias por leer...
 :beer:

jaajmonterrey

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Problema con scanf ¨_¨ auxilio
« Respuesta #1 en: Lunes 4 de Octubre de 2010, 05:31 »
0
oye recuerda que 'n' (es un caracter) también vale por lo tanto cuando pones arribauna cadena y das enter entonces estas dando un caracter de nueva línea por lo tanto en el siguiente scanf("%c") te toma como si hubieras escrito 'n'  un caracter y por eso no te sale en pantalla que ponga el caracter por lo tanto tiene que usar la función fflush para liberar el buffer.

Un ejemplo que me encontre en internet:

#include <stdio.h>

int main()
{
   char a, b, c;

   printf( "Introduzca primer caracter: " );
   scanf( "%c", &a );
   printf( "Introduzca segundo caracter: " );
   fflush( stdin );
   scanf( "%c", &b );
   printf( "Introduzca tercer caracter: " );
   fflush( stdin );
   scanf( "%c", &c );
   printf( "Los valores son: %c, %c, %c ", a, b, c );

   return 0;
}

isma3l

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema con scanf ¨_¨ auxilio
« Respuesta #2 en: Lunes 4 de Octubre de 2010, 07:36 »
0
Gracias......  no sabes las ganas que tenia de  :hitcomp:

Y eso solo pasa con  scanf   o tambien pasa lo mismo para  gets  getchar.
Lo probare...

GRacias de nuevo... :comp: