Código
#include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> int a; char nombres[1000][25],apellidos[1000][30]; FILE*arch; int cargar_arch(){ if(fopen("dato.txt","r")){ arch=fopen("dato.txt","r"); fscanf(arch,"%i",&a); for(int c=0;c<a;c++){ fprintf(arch,"%s\n",nombres[c]); fprintf(arch,"%s\n",apellidos[c]); } fclose(arch); return 1; } else if (!fopen("dato.txt","r")){ return 0; } } void cargar(){ printf("Ingrese cantidad de empleados\n"); printf("Cantidad: "); do{ scanf("%i",&a); } while(a<=0||a>=1000); for(int c=0;c<a;c++){system("cls"); printf("Empleado Numero %i\n",c+1); printf("Nombre: ",nombres[c]); scanf("%s",&nombres[c]); printf("Apellido: ",apellidos[c]); scanf("%s",&apellidos[c]); system("cls"); } } int guardar_arch(){ arch=fopen("dato.txt","w"); fprintf(arch,"%i\n",&a); for(int c=0;c<a;c++){ for(int c2=0;c2<a;c2++){ fprintf(arch,"%s\n",&nombres[c]); fprintf(arch,"%s\n",&apellidos[c]); } } fclose(arch); } main(){ int op; char aux[25]; if(cargar_arch()==1){printf("Se cargaron datos anteriores\n");} else printf("No hay datos anteriores\n"); do{ printf("1)Cargar\n"); printf("2)Ver\n"); printf("3)Salir\n"); printf("Opcion: "); scanf("%i",&op); switch(op){ case 1: cargar(); break; case 2: printf("EMPLEADOS\n\n"); for(int con=0;con<a;con++){ for(int con2=0;con2<a;con2++){ if(strcmp(apellidos[con],apellidos[con2])<0){ strcpy(aux,apellidos[con]); strcpy(apellidos[con],apellidos[con2]); strcpy(apellidos[con2],aux); strcpy(aux,nombres[con]); strcpy(nombres[con],nombres[con2]); strcpy(nombres[con2],aux); } } } for(int con=0;con<a;con++){ printf("%s ,%s\n",apellidos[con],nombres[con]); } break; case 3: guardar_arch(); break; system("cls"); system("pause"); } } while(op!=3); }
Salta error en el segundo corchete y no entiendo porque!
Muchas gracias