#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)
	{
		char c = getchar();
		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;
	}
}