elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Re: Arreglos de cadenas en C en: 2 Junio 2020, 03:44 am
Te lo agradezco mucho, mas o menos esta es la funcion que quería hacer pero no logro que conforme me vaya digitando el numero del nombre que desea meter al arreglo, este se vaya llenando.

Código
  1. void mostrarNombres(Persona *personas, int numeroPersonas){
  2.    int opcion,opc;
  3.    char arregloPersonas[50][LIMITE]; // limite = 100
  4.    do{
  5.        for(int i = 0; i < numeroPersonas; i++){
  6.    printf("%d Nombre: %s\n", i+1,personas[i].nombre);
  7.    printf("\n\n");
  8.   }
  9.  
  10.   printf(" Ingrese el numero correspondiente al nombre que desea: ");
  11.       scanf("%d",&opcion);
  12.  
  13.       for(int j=0; j<numeroLibros; j++){
  14.           if(opcion == j+1){
  15.               //En este caso la persona con el numero que ingrese deberia guardarse en el arreglo, y es lo que no funciona
  16.               //personas[j].nombre
  17.  
  18.           }
  19.       }
  20.  
  21.       printf(" Desea agregar otro nombre?, 1 = SI , 2 = NO: ");
  22.       scanf("%d",&opc);
  23.       system("cls");
  24.    }while(opc == 1);
  25.    if(opc == 2){
  26.        printf("\nNOMBRES AGREGADOS:\n");
  27.        for(int i=0; i<numeroPersonas;i++){
  28.             printf("%s\n",arregloPersonas[i]);
  29.        }
  30.  
  31.    }
  32.    else{
  33.        printf("ERROR, OPCION NO VALIDA");
  34.    }
  35.  
  36.  
  37.  
  38. }
12  Programación / Programación C/C++ / Re: Arreglos de cadenas en C en: 2 Junio 2020, 03:17 am
Y si quiero meter varias cadenas a un mismo arreglo?
Lo que sucede es que estoy intentando llenar un arreglo con datos que ya tengo en una estructura y en este caso solo necesito llenarlo con los nombres.
Mas o menos tendría un opción en donde se pediría que nombres quiero meter al arreglo y conforme me los vaya ingresando la persona, se iría llenando el array.
13  Programación / Programación C/C++ / Re: estructuras y lectura de archivos en C en: 2 Junio 2020, 00:08 am
Te lo agradezco mucho :)
14  Programación / Programación C/C++ / estructuras y lectura de archivos en C en: 30 Mayo 2020, 06:25 am
 :-\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:
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef struct{
  6.    char *nombre;
  7.    char *autor;
  8.    int cantidad;
  9.    int precio;
  10. }libros;
  11. libros *l;
  12.  
  13. void menu();
  14. void vaciar(char temp[]);
  15. void copiarNombre(char temp[],int i);
  16. void copiarAutor(char temp[],int i);
  17.  
  18. int main(){
  19.    char temp[50],aux;
  20.    int contador = 0;
  21.  
  22.    FILE *fichero;
  23.    fichero = fopen("libros.txt","rt");
  24.    if(fichero == NULL){
  25.        printf("No se ha encontrado el documento\n");
  26.        return 0;
  27.    }
  28.    while(!feof(fichero)){
  29.        fgets(temp,50,fichero);
  30.        contador++;
  31.    }
  32.    rewind(fichero);
  33.    l = (libros*)malloc(contador*sizeof(libros));
  34.    if(l == NULL){
  35.        printf("NO SE HA PODIDO RESERVAR LA MEMORIA\n");
  36.        return 0;
  37.    }
  38.    for(int i=0;!feof(fichero); i++){
  39.        vaciar(temp);
  40.        aux = '0';
  41.        for(int j=0; aux != ','; j++ ){
  42.                aux = fgetc(fichero);
  43.                if(aux != ','){
  44.                    temp[j] = aux;
  45.                }
  46.        }
  47.        copiarNombre(temp,i);
  48.        copiarAutor(temp,i);
  49.        fgets(temp,4,fichero);
  50.        l[i].cantidad = atoi(temp);
  51.        fgets(temp,5,fichero);
  52.        l[i].precio = atoi(temp);
  53.       printf("Precio: %d\n",l[i].precio);
  54.  
  55.    }
  56.    fclose(fichero);
  57.  
  58.    getchar();
  59.    return 0;
  60. }
  61.  
  62. void menu(){
  63.    int opc;
  64.  
  65.    printf("\t\t\tLIBRERIA FI\n\n");
  66.    printf("1. Leer inventario inicial\n");
  67.    printf("2. Mostrar inventario de existencias\n");
  68.    printf("3. Vender libros\n");
  69.    printf("4. Informe de ventas\n");
  70.    printf("5. Salir\n");
  71.    printf(" \nIngrese el numero correspondiente a la operacion que desea realizar: ");
  72.    scanf("%d",&opc);
  73. }
  74.  
  75. void vaciar(char temp[]){
  76.    for(int i=0; i<50; i++){
  77.        temp[i] = '\0';
  78.    }
  79. }
  80.  
  81. void copiarNombre(char temp[],int i){
  82.    int longitud;
  83.    longitud = strlen(temp)+1;
  84.    l[i].nombre = (char*)malloc(longitud*sizeof(char));
  85.    if(l[i].nombre == NULL){
  86.        printf("No se ha podido reservar memoria\n");
  87.        return 0;
  88.    }
  89.    strcpy(l[i].nombre,temp);
  90. }
  91.  
  92. void copiarAutor(char temp[],int i){
  93.    int longitud;
  94.    longitud = strlen(temp)+1;
  95.    l[i].autor = (char*)malloc(longitud*sizeof(char));
  96.    if(l[i].autor == NULL){
  97.        printf("No se ha podido reservar memoria\n");
  98.        return 0;
  99.    }
  100.    strcpy(l[i].autor,temp);
  101. }


mi archivo de texto es el siguiente:
Código:
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
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines