:-\Hola tengo que realizar un programa haciendo uso de estructuras dinamicas y lectura de archivos, pero no puedo hacer correctamente la extracción de los archivos y guardarlos en arreglos.
Solo guarda el nombre y la cantidad, pero el autor y el precio no.
Este es mi código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
char *nombre;
char *autor;
int cantidad;
int precio;
}libros;
libros *l;
void menu();
void vaciar(char temp[]);
void copiarNombre(char temp[],int i);
void copiarAutor(char temp[],int i);
int main(){
char temp[50],aux;
int contador = 0;
FILE *fichero;
fichero
= fopen("libros.txt","rt"); if(fichero == NULL){
printf("No se ha encontrado el documento\n"); return 0;
}
contador++;
}
l
= (libros
*)malloc(contador
*sizeof(libros
)); if(l == NULL){
printf("NO SE HA PODIDO RESERVAR LA MEMORIA\n"); return 0;
}
for(int i
=0;!feof(fichero
); i
++){ vaciar(temp);
aux = '0';
for(int j=0; aux != ','; j++ ){
if(aux != ','){
temp[j] = aux;
}
}
copiarNombre(temp,i);
copiarAutor(temp,i);
l
[i
].
cantidad = atoi(temp
); l
[i
].
precio = atoi(temp
); printf("Precio: %d\n",l
[i
].
precio);
}
return 0;
}
void menu(){
int opc;
printf("\t\t\tLIBRERIA FI\n\n"); printf("1. Leer inventario inicial\n"); printf("2. Mostrar inventario de existencias\n"); printf("4. Informe de ventas\n"); printf(" \nIngrese el numero correspondiente a la operacion que desea realizar: "); }
void vaciar(char temp[]){
for(int i=0; i<50; i++){
temp[i] = '\0';
}
}
void copiarNombre(char temp[],int i){
int longitud;
l
[i
].
nombre = (char*)malloc(longitud
*sizeof(char)); if(l[i].nombre == NULL){
printf("No se ha podido reservar memoria\n"); return 0;
}
}
void copiarAutor(char temp[],int i){
int longitud;
l
[i
].
autor = (char*)malloc(longitud
*sizeof(char)); if(l[i].autor == NULL){
printf("No se ha podido reservar memoria\n"); return 0;
}
}
mi archivo de texto es el siguiente:
La casa de los espiritus,Isabel Allende,5,345
La Metamorfosis,Franz Kafka,3,560
La Odisea,Homero,7,200
El Principito,Antoine de Saint-Exupery,2,499
El Laberinto de la Soledad,Octavio Paz,1,150
El tunel,Ernesto Sabato,3,100
Los miserables,Victor Hugo,5,290
Cuentos de amor de locura y de muerte,Horacio Quiroga,4,563
El amor en lo tiempos de colera,Gabriel Garcia Marquez,6,218
MOD: Utiliza las etiquetas de Código GeSHi para los fragmentos de código