Comportamento PRINTF

di il
2 risposte

Comportamento PRINTF

Ho un problema, la printf stampa 2 volte lo stesso risultato di una funzione che ritorna 1 puntatore a carattere. La chiamata è:
printf ("\n\n Il risultato ^ e' di %s %s",segno(um),segno(fm));
quindi il risultato è come se scrivessi:
printf ("\n\n Il risultato ^ e' di %s %s",segno(um),segno(um));

Se invece eseguo 2 printf differenti per stampare le 2 stringhe, funziona:
printf ("\n\n Il risultato ^ e' di %s",segno(um));
printf ("\n\n Il risultato ^ e' di %s",segno(fm));
CIAO A TUTTI !!!!

2 Risposte

  • Re: Comportamento PRINTF

    Non so cosa faccia la funzione segno() ma tieni presente che gli argomenti della printf vengono passati nello stack dall'ultimo al primo ed eseguiti in quell'ordine. Questo potrebbe causare il tuo problema.

    Usa delle variabili di appoggio per i risultati.
  • Re: Comportamento PRINTF

    Grazie oregon, e grazie liso: ho usato una variabile d'appoggio che mi contenesse il risultato di "segno(um)";
    poi al momento dela printf faccio stampare "appogio" e soltanto una volta l'altra funzione che si chiama "segno(fm)".
    ( così, la funzione, nella printf me la lavora una volta sola ).
    ...più o meno così...
    strcpy(appoggio,segno(um));
    printf ("\n\n Il risultato ^ e' di %s %s",appoggio,segno(fm));
    ciao e buon programma a tutti.....!!
Devi accedere o registrarti per scrivere nel forum
2 risposte