C/Visual C - Problema en struct....

 
Vista:

Problema en struct....

Publicado por Javier (54 intervenciones) el 09/11/2000 00:00:00
Hola:
Te hago la siguiente consulta: tengo la estructura
struct Cliente {
char Legajo[10];
char ApelNomb[40];
float Salario;
}
//
struct Cliente Nuevos[10] ;
for( i=0;i<10;i++) {
gets(Nuevos[i].Legajo);
gets(Nuevos[i].ApelNomb);
scanf("%f", &Nuevos[i].Salario);
// porque este scanf causa error de punteros ???
}
Gracias por tu ayuda...
Javier

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema en struct....

Publicado por Endos (143 intervenciones) el 09/11/2000 00:00:00
Prueba de poner fflush(stdin); detras del scanf().

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en struct....

Publicado por Javier (54 intervenciones) el 10/11/2000 00:00:00
Gracias por tu ayuda! Cuando se ejecuta el programa, el mismo se detiene justamente en el scanf del problema, es decir que con tu propuesta no llega a ejecutarse el fflush...
Cual podria ser la solución?
Gracias, Endos, por tu colaboración
Desde Argentina, Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en struct....

Publicado por Endos (143 intervenciones) el 10/11/2000 00:00:00
Si no me equivoco el programa es para Dos y si no recuerdo mal
sobre este S.O. no era posible usar el tipo float con el scanf(),
al menos con los compiladores de Borland.
La solucion si es tu caso pasaria por cambiar el tipo float
por una cadena como los otros elementos de la estructura y luego
usar la funcion atof(); para pasarla a formato numerico.

Es lo unico que se me ocurre
Espero te sirva...

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en struct....

Publicado por Javier (54 intervenciones) el 10/11/2000 00:00:00
Gracias por tu consejo, crei que la solución que habia ideado, era algo desesperada, asi que no me animé a presentartela. Pues bien tambien se me ocurrió la idea de usar gets() y luego atof(). No sabía que los compiladores de Borland tenían este defecto. Yo utilizo el Turbo C++ v3.0. Cual compilador me recomiendas?
Saludos
Desde Argentina
Javier
PD: Tu respuesta huele un poco a historia y a algo de mito y leyenda.("el programa es para Dos y si no recuerdo mal sobre este S.O. no era posible usar...") Tan en desuso es lo que empleo? Ja Ja Gracias por tu tiempo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en struct....

Publicado por Endos (143 intervenciones) el 10/11/2000 00:00:00
Mas que defecto, es una forma de ahorrar memoria en la funcion
en cuestion. Estoy seguro que hay alguna forma de indicarle al
compilador que linke el codigo para usar tipos float, aunque no
conozco como. El compilador que usas me parece perfecto y te
dire que yo he obtenido el mismo resultado con el Borland C++ 5.02
que es el ultimo de la saga...

La diferencia es que se muestra en pantalla este mensaje antes de
fallar el puntero:

scanf : floating point formats not linked

Lo cual indica claramente que se deben linkar de alguna forma...
El problema no existe si se compila para Win32 ya que aqui unos
Kb no son nada.

Lo unico realmente antiguo es Dos, aunque sigo pensando que es lo
mejor para empezar y aprender.

El asunto no es ningun mito ni nada parecido, simplemente recordaba
que eso mismo me paso a mi hace muchos años...

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en struct....

Publicado por Javier (54 intervenciones) el 10/11/2000 00:00:00
Realmente aprecio mucho tu ayuda...
Saludos
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

otra forma de hacerlo

Publicado por gonzalo (3 intervenciones) el 11/11/2000 00:00:00
no podrias hacerlo de otra forma?
pueba con "cin" y "cout"
por ejemplo:
// incluye la libreria que contiene estas dos funciones
include <iostream.h>
// ejemplo
main(){
float f;
cin >> f; // lee un numero desde el teclado y lo deposita en la variable f
coutt << f; // escribe en la pantalla el mismo numero
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Y a ti...te funciona?

Publicado por Javier (54 intervenciones) el 14/11/2000 00:00:00
Conozco los objetos predefinidos de flujo entrada/salida que mencionas. Yo lo probé...no me funcionan y a tí?
Gracias por tu respuesta...
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar