fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define SIZE 15
  4.  
  5. #define TRUE 1
  6. #define FALSE 0
  7.  
  8. typedef struct ElencoTelefonico {
  9. char name[SIZE+1];
  10. char surname[SIZE+1];
  11. char numeroTelefono[SIZE+1];
  12. } ElencoTelefonico;
  13.  
  14. int main()
  15. {
  16. ElencoTelefonico record;
  17. int inputAccettato = FALSE;
  18. do
  19. {
  20. printf("\nInserisci il nome: ");
  21. inputAccettato = verificaInput(record.name);
  22. } while (!inputAccettato);
  23. inputAccettato = FALSE;
  24. do
  25. {
  26. printf("\nInserisci il cognome: ");
  27. inputAccettato = verificaInput(record.surname);
  28. } while (!inputAccettato);
  29. inputAccettato = FALSE;
  30. do
  31. {
  32. printf("\nInserisci il numero di telefono: ");
  33. inputAccettato = verificaInput(record.numeroTelefono);
  34. } while (!inputAccettato);
  35.  
  36. printf("\nNome: %s", record.name);
  37. printf("\nCognome: %s",record.surname);
  38. printf("\nNumero: %s",record.numeroTelefono);
  39. return 0;
  40. }
  41.  
  42. int verificaInput(char * input)
  43. {
  44. int i = 0;
  45. while (TRUE)
  46. {
  47. char c = getchar();
  48. if (c == '\n')
  49. {
  50. input[i++] = '\0';
  51. return TRUE;
  52. }
  53. if (i >= SIZE)
  54. {
  55. printf("\nErrore, lunghezza massima pari a %d caratteri!", SIZE);
  56. while (getchar() != '\n'); // consuma i rimanenti caratteri nello stdin ("flush")
  57. return FALSE;
  58. }
  59. input[i++] = c;
  60. }
  61. }
Success #stdin #stdout 0.02s 1724KB
stdin
tizio
caio
123456

stdout
Inserisci il nome: 
Inserisci il cognome: 
Inserisci il numero di telefono: 
Nome: tizio
Cognome: caio
Numero: 123456