#include <stdio.h>
#include <string.h>
#define SIZE 15
#define TRUE 1
#define FALSE 0
typedef struct ElencoTelefonico {
char name[SIZE+1];
char surname[SIZE+1];
char numeroTelefono[SIZE+1];
} ElencoTelefonico;
int main()
{
ElencoTelefonico record;
int inputAccettato = FALSE;
do
{
printf("\nInserisci il nome: "); inputAccettato = verificaInput(record.name);
} while (!inputAccettato);
inputAccettato = FALSE;
do
{
printf("\nInserisci il cognome: "); inputAccettato = verificaInput(record.surname);
} while (!inputAccettato);
inputAccettato = FALSE;
do
{
printf("\nInserisci il numero di telefono: "); inputAccettato = verificaInput(record.numeroTelefono);
} while (!inputAccettato);
printf("\nNome: %s", record.
name); printf("\nCognome: %s",record.
surname); printf("\nNumero: %s",record.
numeroTelefono); return 0;
}
int verificaInput(char * input)
{
int i = 0;
while (TRUE)
{
if (c == '\n')
{
input[i++] = '\0';
return TRUE;
}
if (i >= SIZE)
{
printf("\nErrore, lunghezza massima pari a %d caratteri!", SIZE
); while (getchar() != '\n'); // consuma i rimanenti caratteri nello stdin ("flush") return FALSE;
}
input[i++] = c;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2RlZmluZSBTSVpFIDE1CiAKI2RlZmluZSBUUlVFIDEKI2RlZmluZSBGQUxTRSAwCiAKdHlwZWRlZiBzdHJ1Y3QgRWxlbmNvVGVsZWZvbmljbyB7CgljaGFyIG5hbWVbU0laRSsxXTsKCWNoYXIgc3VybmFtZVtTSVpFKzFdOwoJY2hhciBudW1lcm9UZWxlZm9ub1tTSVpFKzFdOwp9IEVsZW5jb1RlbGVmb25pY287CiAKaW50IG1haW4oKQp7CglFbGVuY29UZWxlZm9uaWNvIHJlY29yZDsKCWludCBpbnB1dEFjY2V0dGF0byA9IEZBTFNFOwoJZG8KCXsKCQlwcmludGYoIlxuSW5zZXJpc2NpIGlsIG5vbWU6ICIpOwoJCWlucHV0QWNjZXR0YXRvID0gdmVyaWZpY2FJbnB1dChyZWNvcmQubmFtZSk7Cgl9IHdoaWxlICghaW5wdXRBY2NldHRhdG8pOwoJaW5wdXRBY2NldHRhdG8gPSBGQUxTRTsKCWRvCgl7CgkJcHJpbnRmKCJcbkluc2VyaXNjaSBpbCBjb2dub21lOiAiKTsKCQlpbnB1dEFjY2V0dGF0byA9IHZlcmlmaWNhSW5wdXQocmVjb3JkLnN1cm5hbWUpOwoJfSB3aGlsZSAoIWlucHV0QWNjZXR0YXRvKTsKCWlucHV0QWNjZXR0YXRvID0gRkFMU0U7CglkbwoJewoJCXByaW50ZigiXG5JbnNlcmlzY2kgaWwgbnVtZXJvIGRpIHRlbGVmb25vOiAiKTsKCQlpbnB1dEFjY2V0dGF0byA9IHZlcmlmaWNhSW5wdXQocmVjb3JkLm51bWVyb1RlbGVmb25vKTsKCX0gd2hpbGUgKCFpbnB1dEFjY2V0dGF0byk7CiAKCXByaW50ZigiXG5Ob21lOiAlcyIsIHJlY29yZC5uYW1lKTsKCXByaW50ZigiXG5Db2dub21lOiAlcyIscmVjb3JkLnN1cm5hbWUpOwoJcHJpbnRmKCJcbk51bWVybzogJXMiLHJlY29yZC5udW1lcm9UZWxlZm9ubyk7CglyZXR1cm4gMDsKfQoKaW50IHZlcmlmaWNhSW5wdXQoY2hhciAqIGlucHV0KQp7CglpbnQgaSA9IDA7Cgl3aGlsZSAoVFJVRSkKCXsKCQljaGFyIGMgPSBnZXRjaGFyKCk7CgkJaWYgKGMgPT0gJ1xuJykKCQl7CgkJCWlucHV0W2krK10gPSAnXDAnOwoJCQlyZXR1cm4gVFJVRTsKCQl9CgkJaWYgKGkgPj0gU0laRSkKCQl7CgkJCXByaW50ZigiXG5FcnJvcmUsIGx1bmdoZXp6YSBtYXNzaW1hIHBhcmkgYSAlZCBjYXJhdHRlcmkhIiwgU0laRSk7CgkJCXdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJyk7ICAgLy8gY29uc3VtYSBpIHJpbWFuZW50aSBjYXJhdHRlcmkgbmVsbG8gc3RkaW4gKCJmbHVzaCIpCgkJCXJldHVybiBGQUxTRTsKCQl9CgkJaW5wdXRbaSsrXSA9IGM7Cgl9Cn0=