Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - dalberto9410

#1
Bueno tenía una duda respecto al lenguaje, ya sé que es ASM, pero he visto que hay NASM, FASM,MASM y no sé si habrá más, yo he estado estudiando NASM pero me interesaría aprender el lenguaje con el que trabaja Olly?
#2
Programación C/C++ / Duda con fgets
27 Marzo 2013, 06:07 AM
Hola, aquí yo de nuevo xD ayer puse una duda que tenia y se resolvia usando fgets allí todo bien pero he estado probando y cuando uso fgets se salta una linea

#include<stdio.h>
typedef struct fecha{int dia;int mes;int año; }d_t;
typedef struct contacto{char nombre[80];unsigned int tel; d_t fecha_nacimiento; }c_t;

d_t crear_fecha(){   d_t nueva_fecha;
printf("\nIngrese el dia: "); scanf("%d",&nueva_fecha.dia);  while(getchar()!='\n');
printf("\nIngrese mes: ");    scanf("%d",&nueva_fecha.mes);  while(getchar()!='\n');
printf("\nIngrese año:" );    scanf("%d",&nueva_fecha.año); while(getchar()!='\n');
return nueva_fecha;        }

c_t crear_contacto(){  c_t nuevo_contacto;
printf("\nIngrese nombre: ");
fgets(nuevo_contacto.nombre,80,stdin);
//scanf("%[^\n]s",nuevo_contacto.nombre);
printf("\nIngrese telefono: ");  scanf("%d",&nuevo_contacto.tel);
//asignar fecha de nacimiento
nuevo_contacto.fecha_nacimiento=crear_fecha();
return  nuevo_contacto;   }

c_t imprimir(){

}
int main (void){   c_t c1;
c1=crear_contacto();
imprimir(c1);

printf("Nombre: %s, Telefono %d, Fecha Nacimiento: %d/%d/%d",
c1.nombre,c1.tel,c1.fecha_nacimiento.dia,c1.fecha_nacimiento.mes,c1.fecha_nacimiento.año);

return 0; }

Aca el resultado de la salida

Ojo que con scanf no ocurre eso pero quisiera hacerlo con fgets :/

Gracias de antemano!! Saludos.
#3
Hola!
hace unos días que comenze a programar en C y he llegado a la parte de estructuras. Antes limpiaba el buffer utilizando

while(getchar()!='\n');

después de leer el dato con scanf, pero ahora que he llegado a estructuras, al parecer no puedo usar scanf directamente y se usa el gets(), bien con scanf el código antes mostrado para limpiar el buffer funcionaba perfecto, pero ahora con el gets no! a la hora que ingreso un nombre y doy enter queda en una linea nueva y tengo que dar otro enter para que recien pase a la impresion del nombre cosa que no debería pasar ... aca mi código..


#include<stdio.h>
struct contacto{
char nombre[40],direccion[80];
int edad;
long telefono;
};
typedef struct contacto cont;
int main (void){
cont c1;
printf("Ingrese el nombre\n");
gets(c1.nombre);
printf("%s\n",c1.nombre);
return 0;
}
Como podría limpiar el buffer entonces?

Saludos y gracias de antemano ! ;D