Ciclo while che si ferma

di il
13 risposte

Ciclo while che si ferma

Ciao a tutti sara' banale ma non capisco perche' questo ciclo non arriva fino alla fine del file
   while(fgets(str2, 200, ft) != NULL) // legge e stampa ogni riga
	  {

		  
		   while (str2[i])
		   {
		    c=str2[i];
		    if (isspace(c)) c=','; 
		    fprintf(fx,"%c",c);
		    i++;
		   }	  
	  	
	  
	  }
grazie
A.

13 Risposte

  • Re: Ciclo while che si ferma

    Ma la variabile i da quanto parte? E aumenta sempre?
  • Re: Ciclo while che si ferma

    Parte da zero


    int i=0;
  • Re: Ciclo while che si ferma

    Sì, ma nel ciclo non viene mai azzerata ...
  • Re: Ciclo while che si ferma

    oregon ha scritto:


    Sì, ma nel ciclo non viene mai azzerato ...
    non vedo perche' lo dovrei azzerare! e' una variabilr globale parte da zero legge tutto il file e finisce
  • Re: Ciclo while che si ferma

    antonio66 ha scritto:


    oregon ha scritto:


    Sì, ma nel ciclo non viene mai azzerato ...
    non vedo perche' lo dovrei azzerare!
    Se te lo dico un motivo ci sarà, no?!

    Tu usi la variabile i nel ciclo come indice di str2 che è un vettore di char presumibilmente non più grande di 200 caratteri ed è usato per ogni linea del file. Ma se i aumenta senza controllo nel ciclo, assumerà valori molto più grandi di 200 causando un accesso illecito in memoria con risultati imprevedibili ...

    Però, fai un po' come vuoi ...
  • Re: Ciclo while che si ferma

    oregon ha scritto:


    antonio66 ha scritto:


    oregon ha scritto:


    Sì, ma nel ciclo non viene mai azzerato ...
    non vedo perche' lo dovrei azzerare!
    Se te lo dico un motivo ci sarà, no?!

    Tu usi la variabile i nel ciclo come indice di str2 che è un vettore di char presumibilmente non più grande di 200 caratteri ed è usato per ogni linea del file. Ma se i aumenta senza controllo nel ciclo, assumerà valori molto più grandi di 200 causando un accesso illecito in memoria con risultati imprevedibili ...

    Però, fai un po' come vuoi ...
    si inprevedibili ok! pero' nel mio caso mi legge solo una riga e gli ultimi 3 caratteri della terza riga....
  • Re: Ciclo while che si ferma

    Okay, vuoi fare delle prove o vuoi solamente discutere ?

    Scusa ma non ho tutto questo tempo e sinceramente non so cosa altro dirti ... è un codice semplicissimo ...
  • Re: Ciclo while che si ferma

    oregon ha scritto:


    Okay, vuoi fare delle prove o vuoi solamente discutere ?

    Scusa ma non ho tutto questo tempo e sinceramente non so cosa altro dirti ... è un codice semplicissimo ...
    si,scusa, voglio fare delle prove e risolvere il problema!
    scusa! e grazie
    A.
  • Re: Ciclo while che si ferma

    Quindi vedi di gestire meglio la variabile i e vedi che risolvi.

    A proposito, cosa contiene il file dei dati?

    Proponi tutto il main con l'apertura del file e vedo di provarlo praticamente.
  • Re: Ciclo while che si ferma

    oregon ha scritto:


    A proposito, cosa contiene il file dei dati?
    e' un semplice file di testo in cui devo recuperare solo alcuni valori che sono sparsi qua e la....
  • Re: Ciclo while che si ferma

    Sì, ma puoi fare un esempio concreto senza dover utilizzare decine di post ... scusa ma così una discussione dura ore ...

    Mostra un paio di line del file dati per fare un test e mostra anche il main ...
  • Re: Ciclo while che si ferma

    oregon ha scritto:


    Sì, ma puoi fare un esempio concreto senza dover utilizzare decine di post ... scusa ma così una discussione dura ore ...

    Mostra un paio di line del file dati per fare un test e mostra anche il main ...
    ma' tra una prova e l'altra sono tornato sui miei vecchi passi! pero' adesso ho un problema tra un'array di char e un'array di long....
    e' meglio che mi metto a studiare...
  • Re: Ciclo while che si ferma

    Va beh ... abbiamo scherzato un'oretta ...
Devi accedere o registrarti per scrivere nel forum
13 risposte