codice:
int main(int argc, const char *argv[]) {
char **list;
int length,size;
list=loadlist((char *)argv[1],&length,&size);
list=sortlist(list,length,size);
printlist((char *)argv[2],list,length,size);
return 0;
}
codice:
void readsize(char *filename, int *length, int *size) {
FILE *in=fopen(filename,"r");
int i=0,j=0;
char tmp;
while(fscanf(in,"%c",&tmp)!=EOF && tmp!='\n') j++;
rewind(in);
while(fscanf(in,"%*s\n")!=EOF) i++;
(*length)=i; (*size)=j;
fclose(in);
}
char *readline(FILE *in,int size) {
char *line=(char *)malloc(size*sizeof(char)), tmp;
int i=0;
while(i<size && fscanf(in,"%c",&line[i])!=EOF) i++;
fscanf(in,"%c",&tmp);
if(tmp!='\n') {
printf("Error: malformed file\n");
return NULL;
}
return line;
}
char **loadlist(char *filename, int *length, int *size) {
int i;
char **list;
FILE *in=fopen(filename,"r");
readsize(filename,length,size);
list=(char **)malloc((*length)*sizeof(char *));
for(i=0; i<(*length); i++)
list[i]=readline(in,(*size));
fclose(in);
return list;
}
void printlist(char *filename, char **list, int length,int size) {
FILE *out=fopen(filename,"w");
int i;
for(i=0; i<length; i++) {
list[i][size] = '\0';
fprintf(out,"%s\n",list[i]);
}
fclose(out);
}
manca solamente
che è lunghissimo e complicato e che comunque
anche cambiando il tipo di ordinamento l'errore rimane lo stesso..
Stò anche pensando che l'errore potrebbe essere nella creazione del file random..
GRAZIE