Hola!, podrían ayudarme a encontrar el error de este programa?
Salta error en el segundo corchete y no entiendo porque!
Muchas gracias
Código (cpp) [Seleccionar]
#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