PDA

View Full Version : Gestione dei numeri con zero iniziale in C


R1((ky
11-12-2003, 10:56
Salve a tutti, scrivo per il seguente problema:

In un mio programma in C ho bisogno di gestire degli elenchi di numeri, che adesso gestisco come INT.

Una volta che il numero viene inserito dall'utente tramite tastiera, il programma lo salva su file.

Successivamente, se il programma va a leggere il numero salvato, e il numero inserito inizia con zero, a monitor il numero viene privato dello zero iniziale. Come fare?

Altro quesito....con numeri più lunghi di 9 cifre il programma salva numeri del tipo -135264523 ecc....

Grazie.

ilsensine
11-12-2003, 11:02
Originariamente inviato da R1((ky
Successivamente, se il programma va a leggere il numero salvato, e il numero inserito inizia con zero, a monitor il numero viene privato dello zero iniziale. Come fare?
Un "numero" non è "testo", e gli zeri iniziali non sono significativi.

Altro quesito....con numeri più lunghi di 9 cifre il programma salva numeri del tipo -135264523 ecc....

Integer overflow.


Nella tua situazione, userei delle stringhe al posto dei numeri.

Innominato
11-12-2003, 13:33
Originariamente inviato da ilsensine
Nella tua situazione, userei delle stringhe al posto dei numeri.
Oppure un array di interi in caso quel numero ti servisse anche per altre cose, e poi se dall'array vuoi avere un numero unico moltiplichi per le decine, le centinaia...., a seconda della posizione nell'array stesso, e sommi, non so se mi sono spiegato...
ciao.

downloader
12-12-2003, 15:10
Convengo sull'uso di stringhe... TUTTAVIA

usa una sprintf (sprintf(stringa, "%d", numero_tel)) e poi concatena il risultato ad una stringa con lo zero:

char p[15];

strcpy(p, "0");
strcat(p, stringa);

e ottieni il numero come stringa e con lo zero iniziale.
Spero sia un buon suggerimeto...;)

R1((ky
12-12-2003, 15:42
Originariamente inviato da downloader
Convengo sull'uso di stringhe... TUTTAVIA

usa una sprintf (sprintf(stringa, "%d", numero_tel)) e poi concatena il risultato ad una stringa con lo zero:

char p[15];

strcpy(p, "0");
strcat(p, stringa);

e ottieni il numero come stringa e con lo zero iniziale.
Spero sia un buon suggerimeto...;)


sì ma se il numero non contiene lo zero me lo aggiunge lo stesso, e non è buona cosa (l'avevo già pensato) :)

Cmq grazie, ho fatto con le stringhe e ho risolto tutto....

R1((ky
12-12-2003, 16:58
Senza aprire un nuovo Thread...dato che si parla cmq di numeri e stringhe....dovrei fare sta cosa:


in un file di testo sono memorizzati: codice utente (int), numero (char) e commento (char)

per cancellare un utente vorrei fare così:


il programma scansiona l'array, va al codice utente selezionato, se è quello che cerca allora prende il codice utente e lo pone = 0, successivamente scrive 0 sul file al posto del vecchio codice utente...


Come si può fare? Scusate ma sono quasi 2 anni che non programmo più.....