esq tengo una duda de C, kiero q un fichero me lo muestre por patalla y me diga la linea mas larga.... a ver si sabeis lo q tengo mal... gracias
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[]){
int contador = 0;
char aux[256];
FILE *fich;
fich=fopen("ejemplo.txt","r");
while(fgets(aux,256,fich)!=NULL){/*mientras haya lienas lee el fichero*/
printf("%s",aux);
if (strlen(aux)<=contador)
contador=strlen(aux);}
fclose(fich);
return 0;}
duda C
Moderador: Moderadores
respuesta
Básicamente tienes mal la igualdad...
Si quieres comparar para encontrar la línea más larga tienes que comprovar si la línea leída tiene más caracteres que la variable, y no al revés. Te adjunto el programa modificado...
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[]){
int contador = 0, numlin=1, linactual=1;
char aux[256];
FILE *fich;
fich=fopen("ejemplo.txt","r");
while(fgets(aux,256,fich)!=NULL){/*mientras haya lienas lee el fichero*/
printf("%s",aux);
if (strlen(aux)>=contador)
{contador=strlen(aux);numlin=linactual;} linactual=linactual++;
}
printf("\n---------------------------------------\n");
printf("La l¡nea m s larga es la n£mero %d y ocupa %d caracteres",numlin,contador);
fclose(fich);
return 0;}
--------------------------------------------------------------
LPG, webmaster de http://www.totcarrer.com/es/index_es.html (Tot Carrer es una empresa de mobilirio urbano ; bancos, pilonas, jardineras...)
--------------------------------------------------------------
Si quieres comparar para encontrar la línea más larga tienes que comprovar si la línea leída tiene más caracteres que la variable, y no al revés. Te adjunto el programa modificado...
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[]){
int contador = 0, numlin=1, linactual=1;
char aux[256];
FILE *fich;
fich=fopen("ejemplo.txt","r");
while(fgets(aux,256,fich)!=NULL){/*mientras haya lienas lee el fichero*/
printf("%s",aux);
if (strlen(aux)>=contador)
{contador=strlen(aux);numlin=linactual;} linactual=linactual++;
}
printf("\n---------------------------------------\n");
printf("La l¡nea m s larga es la n£mero %d y ocupa %d caracteres",numlin,contador);
fclose(fich);
return 0;}
--------------------------------------------------------------
LPG, webmaster de http://www.totcarrer.com/es/index_es.html (Tot Carrer es una empresa de mobilirio urbano ; bancos, pilonas, jardineras...)
--------------------------------------------------------------