C/Visual C - Ayuda, Asignacion datos en arreglo de estructuras,

 
Vista:
Imágen de perfil de israel
Val: 2
Ha aumentado su posición en 8 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Ayuda, Asignacion datos en arreglo de estructuras,

Publicado por israel (2 intervenciones) el 04/03/2019 00:24:53
De antemano muchas gracias, hoy vengo por su ayuda con lo siguiente, nesecito hacer una funcion que me genere 10 registros automaticos a un struct.


1
2
3
4
5
6
7
8
struct Libro{
    char nombre[50];
    char autor[50];
    char editorial[50];
    char categoria[50];
    char catSec[50];
    int isbn, ejemplares, precio, rank;
}libros[100];


ya tengo una funcion Insertar para guarda datos manualmente, la cual funciona perferctamente,


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int aux;
        printf("Ingresa Cod. ISBN: ");
        scanf("%d",&aux);
        for(int i=0;i<=cont;i++)
            if(aux==libros[i].isbn){
                printf("Codigo ISBN repetido, no se puede generar en registro\n\n\n");
                system("PAUSE");
                system("CLS");
                return;
            }
            libros[cont].isbn=aux;
            printf("Ingresa Nombre Libro: ");
            fflush(stdin);gets(libros[cont].nombre);
            printf("Ingresa Autor : ");
            fflush(stdin);gets(libros[cont].autor);
            printf("Ingresa Editorial: ");
            fflush(stdin);gets(libros[cont].editorial);
            printf("Ingresa Categoria: ");
            fflush(stdin);gets(libros[cont].categoria);
            printf("Ingresa Categoria Secundaria: ");
            fflush(stdin);gets(libros[cont].catSec);
            printf("Ingresa Existencia: ");
            scanf("%d",&libros[cont].ejemplares);
            printf("Ingresa Precio: ");
            scanf("%d",&libros[cont].precio);
            libros[cont].rank=0;
            cont++;
            printf("\n\n");
            system("PAUSE");
            system("CLS");


PERO PARA HACER MAS AGIL LA REVISION NESECITO GENERAR 10 REGISTROS DE MANERA AUTOATICA, PENSE EN ALGO COMO ESTO PERO NO LOGRO QUE FUNCIONE.


1
2
3
4
5
6
7
8
9
10
11
for(int i=0;i<=10;i++){
            strcpy(libros[i].isbn,i+1);
            strcpy(libros[i].nombre,"Nombre");
            strcpy(libros[i].autor,"Autor");
            strcpy(libros[i].editorial,"Editorial");
            strcpy(libros[i].categoria,"Categoria");
            strcpy(libros[i].catSec,"Cat. Secundaria");
            strcpy(libros[i].ejemplares,i+1*5);
            strcpy(libros[i].precio,i+1*10);
            strcpy(libros[i].rank,0);
        }

PROBE TAMBIEN COMO
1
libros[i].nombre="Nombre";

PERO ME TIRA ERROR CON LOS CAPOS QUE SON CHAR
ALGUNA AYUDA CON ESTO?
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
sin imagen de perfil
Val: 89
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Ayuda, Asignacion datos en arreglo de estructuras,

Publicado por Bruno (27 intervenciones) el 10/03/2019 23:16:06
strcpy se encarga de copiar cadenas. En estas líneas hay errores:

1
2
3
4
strcpy(libros[i].isbn,i+1);
strcpy(libros[i].ejemplares,i+1*5);
strcpy(libros[i].precio,i+1*10);
strcpy(libros[i].rank,0);

El segundo parámetro debe ser una cadena. Te dejó un enlace con la referencia de la función.
http://www.cplusplus.com/reference/cstring/strcpy/

Saludos.
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