Problema fgets in fase di debug

di il
9 risposte

Problema fgets in fase di debug

Salve a tutti,ho un problema con la fgets quando faccio il debug di un algoritmo,in pratica non mi legge le righe da un file, è normale?

9 Risposte

  • Re: Problema fgets in fase di debug

    Ecco un codice di esempio.
    #include <stdio.h>
    
    int main() {
    	 FILE *fPtr;
    	 char string[100] = "\0";
    	 fPtr = fopen("test.sem", "r");
    	 while(fgets(string, 100, fPtr))
    		printf("%s", string);
    	return 0;
    }
    se lo eseguo funziona, ma se lo richiamo tramite un debugger (kdbg) o (DDD) la while me la da falsa ed in più non assegna a string la riga del file.
  • Re: Problema fgets in fase di debug

    No non é normale. Dicci compilatore e ambiente in cui lavori e posta il codice. Alle volte il problema é solo il percorso di esecuzione
  • Re: Problema fgets in fase di debug

    Dato che non controlli se l'apertura con la fopen ha avuto successo, probabilmente il problema è proprio lì ... non è riuscito ad aprire il file.

    Ma dovresti controllarlo ...

    Tra l'altro l'assegnazione

    = "\0"

    non ha senso.
  • Re: Problema fgets in fase di debug

    candaluar ha scritto:


    No non é normale. Dicci compilatore e ambiente in cui lavori e posta il codice. Alle volte il problema é solo il percorso di esecuzione
    Uso linux, e compilatore clang -g o cc -g, comunque era un problema di percorso.
    Thank u.
  • Re: Problema fgets in fase di debug

    Devi controllare sempre cosa restituisce la fopen
  • Re: Problema fgets in fase di debug

    oregon ha scritto:


    Devi controllare sempre cosa restituisce la fopen
    si lo so, infatti era solo un codice scritto in 10 secondi, comunque l'assegnamento string = '\0' mi resetta tutta la stringa, invece quando lo ometto la stringa e piena di \001\004\555\666\777\000 etcetc
  • Re: Problema fgets in fase di debug

    Questo "reset" di cui parli non serve a nulla ti dico.
  • Re: Problema fgets in fase di debug

    oregon ha scritto:


    Questo "reset" di cui parli non serve a nulla ti dico.
    lo so che dovrebbe resettare solo il 1° elemento, ma il debugger me lo da come tutto resettato invece omettendolo il vettore e riempito di schifezza, poi boo
  • Re: Problema fgets in fase di debug

    Non ha importanza cosa c'è prima, la fgets mette a posto anche il terminatore.
Devi accedere o registrarti per scrivere nel forum
9 risposte