C/Visual C - Ayuda con estructuras

 
Vista:
sin imagen de perfil

Ayuda con estructuras

Publicado por Raul (5 intervenciones) el 12/05/2002 12:07:08
He definido un estructura para un programa
struct depart
{
char nombre[12];
int escala;
} departamento;
luego cuando quiero introducir datos en esta estructura como lo hago?

printf ("introduzca nombre departamento");
scanf ("%s",&departamento.nombre);

yo hago esto y me da error , que hago mal?.
y como seria para guarda la estructura con los datos en un fichero??.

gracias.

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:Ayuda con estructuras

Publicado por chuidiang (677 intervenciones) el 12/05/2002 14:17:45
Pueden pasar dos cosas.
1. departamento.nombre es un array y por tanto ya es un puntero. Quizás te sobre el & en el scanf
2. Si no es así, prueba a poner entre paréntesis
&(departamento.nombre)
3. Si tampoco es así, por favor indica el tipo de error para dar una pista.

En cuanto a escribirlo, abre el fichero con fichero = open() (o con fopen como binario) y escribe la estructura con write (fichero, &departamento, sizeof(departamento)) (o fwrite()). Leela con read (o fread()). Esto escribe en binario la estructura en el fichero.

Se bueno.
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:Ayuda con estructuras

Publicado por Alexis Leung (70 intervenciones) el 12/05/2002 20:19:26
Es obvio que tu problema se encuentra en el

scanf("%s",&departamento.nombre);

Debería ser:

scanf("%s",departamento.nombre);

pues el arreglo nombre indica por si una dirección de la memoria en donde empieza el array.

De todas formas te recomiendo que uses:

gets(departamento.nombre);

pues porque con scanf no acepta espacios en la cadena en cambio con gets si. Es decir, si escribo:

"Ciencias Basicas".

Entonces se guardaría Ciencias nada más.

Para guardar puedes usar fscanf ó fwrite. Te recomiendo con fwrite, pues es más flexible. Debería ser:

fwrite(&departamento, sizeof(departamento), 1, pfichero);

Donde:

&departamento: es la dirección de memoria donde queda la información que se va a grabar.

sizeof(departamento): es la cantidad en bytes que se va a almacenar.

1: es la cantidad de elementos de "x bytes" que se va grabar.

pfichero: es el puntero al fichero previamente abierto.

Con fread() es lo mismo, solo que &departamento sería el lugar donde se va a almacenar la información.
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:Ayuda con estructuras

Publicado por José Luis Merino (1 intervención) el 29/06/2002 20:51:50
He tenido los mismos problemas para almacenar valores en estructuras, la diferencia es que se trata de un arreglo de estructuas.
He usad el siguiente còdigo, como lo indican los manuales que he consultado:

scanf ("%s", alumno[i].nombre);

he probado esta instrucción con &alumno[i].nombre, y tampoco ha dado resultado.

Tambièn he probado con:

gets (alumno[i].nombre);

pero no resulta...

Estoy usando C Borland

Agradecerìa su ayuda


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