Code:
void Mostrar(FILE *fich);
int Func(char **s1, char **s2);
void PrintNames(char **ap, unsigned nobj);
/*-----------------------------------------------------*/
int main(int argc, char*argv[])
{
argv0 = "sorttext";
if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) )
{
fprintf(stderr, "%s: Uso: %s [ fichero... ]\n", argv0, argv0);
fprintf(stderr, "%s: Invierte el orden de las líneas de los ficheros (o de la entrada).\n", argv0);
return 0;
}
/* Aqui se deben incluir las funciones necesarias para resolver los
diferentes apartados de la practica. Se recomienda:
- Sea ordenado y metodico en la codificación de las
funcionalidades
- Si el programa va a ser complejo, utilice varios ficheros
de implementacion .c y defina los ficheros de cabecera .h
con el prototipo de las funciones.
- Antes de preguntar al profesor (en tutorias, correo
electronico o via el foro) depure bien el problema e intente
acotarlo. No pregunte "Esto no me funciona...", diga donde,
por que y en que casos falla.
*/
/* Ejemplo de uso de la función de Error. */
// ...
// Error(EX_NOINPUT, "El fichero \"%s\" no puede ser leido.", argv[i]);
/* fgets exmaple */
/*--------------------Variables --------------------*/
FILE *archivo;
FILE *aux;
char porordenar [128], actual [128], auxiliar [128];
int cuenta = 0;
int turno ;
int i = 0;
int s = 0;
int l = 1;
int t = 0;
int puesto =0;
int idR = 0;
/*-------------------NUEVOS-------------------------*/
/*--------------------------------------------------*/
turno = argc;
aux = fopen("aux.txt","w+");
while (l<turno)
{
if (idR = access(argv[l], F_OK) != 0)
{
Error(EX_NOINPUT, "El fichero \"%s\" no puede ser leido.", argv[i]);
}
archivo = fopen(argv [l],"r");
/*archivo = fopen("segundo.txt","r");*/
/* aux = fopen("aux.txt","w+");*/
while (!feof(archivo))
{
fgets (porordenar, 128, archivo);
cuenta = cuenta ++;
}
cuenta = cuenta --;
char *starr [cuenta];
char buffer[cuenta] [128];
rewind (archivo);
while (!feof(archivo))
{
fgets (porordenar, 128, archivo);
strcpy(buffer[i],porordenar);
starr [i]=buffer [i];
i = i++;
}
/* PrintNames(starr, sizeof starr / sizeof starr[0]);*/
/*
qsort(
starr,
0,
8,
(int (*)(const void *, const void *)) Func
);
*/
for (t=0, t<=cuenta, t++)
{
qsort(
starr,
sizeof starr / sizeof starr[t],
sizeof starr[t],
(int (*)(const void *, const void *)) Func
);
}
while ( s < cuenta)
{
fputs (starr[s],aux);
s = s++;
}
/*printf (" ORDENADO\n"); */
cuenta = 0;
s = 0;
l = l++;
Mostrar (aux);
/*fclose (archivo);*/
}
fclose (aux);
return 0;
}
void Mostrar(FILE *fich)
{
char linea[128];
rewind(fich);
fgets(linea, 128, fich);
while(!feof(fich)) {
puts(linea);
fgets(linea, 128, fich);
}
}
/*Func: compara dos strings apuntados por *s1 y *s2 */
int Func(char **s1, char **s2)
{
return strcmp(*s1, *s2);
}
/* PrintNames: print names from ap for nobj elements */
void PrintNames(char **ap, unsigned nobj)
{
for ( ; nobj > 0; ap++, nobj--)
printf("%s\n", *ap);
}
THANKS for your time