ciao a tutti,
dovrei realizzare un prog che salvi in un file dei dati inseriti dall'utente, in particolare dei numeri. Il prog funziona bene, ma quando si inserisce un intero da salvare che viene preceduto da uno zero questo viene salvato nel file senza lo zero, credo perchè siccome ho usato gli interi, il C crede che lo zero che precede il numero non sia una cifra significativa e quindi lo elimina in partenza...come posso fare per salvare l'intero così come viene scritto ?
vi posto qui il codice C che ho scritto:
#include <stdio.h>
struct rubrica {
int acctNum;
char lastName[ 15 ];
char firstName[ 10 ];
int numero;
};
int enterChoice( void );
void aggiungi( FILE *fPtr );
int main()
{
FILE *cfPtr;
if ( ( cfPtr = fopen( "rubrica.dat", "rb+" ) ) == NULL ) {
printf( "Errore: file non aperto!\n" );
}
else
aggiungi( cfPtr );
fclose( cfPtr );
return 0;
}
void aggiungi( FILE *fPtr )
{
struct rubrica struttura = { 0, "", "", 0 };
int accountNum;
printf( "Inserisci un id per i dati da inserire ( Ex:un numero maggiore di 1 ): " );
scanf( "%d", &accountNum );
fseek( fPtr, ( accountNum - 1 ) * sizeof( struct rubrica ),
SEEK_SET );
fread( &struttura, sizeof( struct rubrica ), 1, fPtr );
if ( struttura.acctNum != 0 ) {
printf( "Account #%d already contains information.\n",
struttura.acctNum );
}
else {
printf( "Inserisci: Nome, Cognome, Numero di telefono:\n " );
scanf( "%s%s%d", &struttura.lastName, &struttura.firstName,
&struttura.numero );
struttura.acctNum = accountNum;
fseek( fPtr, ( struttura.acctNum - 1 ) *
sizeof( struct rubrica ), SEEK_SET );
fwrite( &struttura,
sizeof( struct rubrica ), 1, fPtr );
}
}