duda C

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

nyarko
Novat@
Mensajes: 2
Registrado: Lun Oct 25, 2004 11:03 pm

duda C

Mensaje por nyarko » Lun Oct 25, 2004 11:04 pm

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;}

Avatar de Usuario
Tot carrer - mobiliario

respuesta

Mensaje por Tot carrer - mobiliario » Jue Oct 28, 2004 4:04 pm

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...)
--------------------------------------------------------------

Responder