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

Aprendiendo Registros

Estas en el tema de Aprendiendo Registros en el foro de C/C++ en Foros del Web. Saludos chicos(: Estoy comenzando a manejar los registro. Voy con cosas sencillas para irle agarrando la clave Ahorita estoy con este code, pero me sale ...
  #1 (permalink)  
Antiguo 29/03/2011, 15:32
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Aprendiendo Registros

Saludos chicos(: Estoy comenzando a manejar los registro. Voy con cosas sencillas para irle agarrando la clave

Ahorita estoy con este code, pero me sale el siguiente error:

registros.c:32: error: request for member ‘cedula’ in something not a structure or union
registros.c:33: error: request for member ‘edad’ in something not a structure or union
registros.c:34: error: request for member ‘sexo’ in something not a structure or union

Código:
#include <stdio.h>

#define tf 100

struct persona

{
	char cedula;
	int edad;
	char sexo;
};

typedef estudiantes[tf];
void leerest(estudiantes v, int tu);

main(){

int myr;
estudiantes secc3;

	myr=tmovector();
	printf("\nTamaño: %d\n", myr); 



}

void leerest(estudiantes v, int tu)
{
int i;
	
	for (i=0;i<=tu;i++){
		scanf("%d", v[i].cedula);
		scanf("%d", v[i].edad);
		scanf("%c", v[i].sexo);
	}  

}

int tmovector()
{

int tu=0;
int ci, edad;
char sexo;
FILE *archivoentrada;
archivoentrada=fopen("datos.txt", "r");

		do{
	
			fscanf(archivoentrada, "%d %d %c\n", &ci, &edad, &sexo);

				tu=tu+1;
			
		}while(!feof(archivoentrada));
	
	return(tu);

fclose(archivoentrada);

}
Ni idea de que sera.. Pero seguro me pueden ayudar :)
  #2 (permalink)  
Antiguo 29/03/2011, 15:57
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 18 años, 10 meses
Puntos: 9
Respuesta: Aprendiendo Registros

typedef estudiantes[tf]; ??? de que tipo es tu arreglo?

lo correcto en tu caso sería

typedef struct persona

{
char cedula;
int edad;
char sexo;
} estudiantes[tf];
  #3 (permalink)  
Antiguo 29/03/2011, 16:07
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Aprendiendo Registros

Es un vector. Lo modifique como me dices, pero la verdad no entiendo porque esa estructura._.

y ahora me sale este error:

registros.c:34: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
registros.c:35: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
registros.c:36: warning: format ‘%c’ expects type ‘char *’, but argument 2 has type ‘int’

Gracias x la ayuda(:
__________________
Software libre rocks lml
  #4 (permalink)  
Antiguo 29/03/2011, 18:11
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 18 años, 10 meses
Puntos: 9
Respuesta: Aprendiendo Registros

bien el error es debido a que scanf recibe como parameto una direccion de de memoria de una variable y no la variable en si.

en tu caso

scanf("%d", &v[i].cedula);
  #5 (permalink)  
Antiguo 30/03/2011, 08:07
Avatar de Geekne  
Fecha de Ingreso: marzo-2011
Ubicación: Donde estoy? Washing you.
Mensajes: 30
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Aprendiendo Registros

Ahora si me funciono :) una nubada por cierto xd Pero ni lo vi ._.

Gracias por la ayuda
__________________
Software libre rocks lml

Etiquetas: registros
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 01:11.