Funzione sprintf in C
Ho un problema quando uso questa funzione in C se memorizzo in una stringa di caratteri n un numero con due cifre: il programma va in loop.
Ecco il codice:
char n[2];
int r=10;
sprintf(n,"%2d",r);
Ecco il codice:
char n[2];
int r=10;
sprintf(n,"%2d",r);
Risposte
Cos'è quel "%2d", non dovrebbe essere "%d"?
In che senso ti va in loop?
In che senso ti va in loop?
il 2 è per forzare l'acquisizione a due cifre, ma probabilmente non è quello il problema.
La variabile n che ho acquisito con lo sprintf viene poi stampata tramite una funzione creata dal professore su una finestra. L'esecuzione del programma poi va bene nel senso che vengono eseguite istruzioni successive, ma se mi faccio stampare su shell questo n vedo che viene stampato all'infinito, anche se l'esecuzione del programma non sembra si sia fermata visto che vengono compilate sicuramente delle righe successive.
Non so se mi sono spiegato.
La variabile n che ho acquisito con lo sprintf viene poi stampata tramite una funzione creata dal professore su una finestra. L'esecuzione del programma poi va bene nel senso che vengono eseguite istruzioni successive, ma se mi faccio stampare su shell questo n vedo che viene stampato all'infinito, anche se l'esecuzione del programma non sembra si sia fermata visto che vengono compilate sicuramente delle righe successive.
Non so se mi sono spiegato.
Esatto: l'errore era nel dichiarare l'array con 2 sole componenti.
Se però metto %2d o %3d succedono dei casini.
Ti ringrazio infinitamente Sergio!
Se però metto %2d o %3d succedono dei casini.
Ti ringrazio infinitamente Sergio!