Advertisement
Guest User

Untitled

a guest
Oct 13th, 2011
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. enum tecodes
  7. {
  8. EOK = 0, /**< Bez chyby */
  9. ECLWRONG, /**< Chybný pøíkazový øádek. */
  10. EOVER, /** Preteceni vstupu*/
  11. EWRONGIN,
  12.  
  13. EUNKNOWN, /**< Neznámá chyba */
  14.  
  15. };
  16.  
  17. typedef struct jmeno
  18. {
  19. unsigned long hodnota;
  20. int chyba;
  21. } TValue;
  22.  
  23. TValue CteniRadku(void)
  24. {
  25.  
  26.  
  27. unsigned long cislo;
  28. TValue vystup =
  29. {
  30. .hodnota = 0,
  31. .chyba = EOK,
  32. };
  33.  
  34.  
  35. while ((cislo = getchar()) != '\n' && cislo != EOF){
  36. if (cislo >= '0' && cislo <= '9'){
  37. if (vystup.hodnota > (ULONG_MAX - (cislo - '0')) / 10){
  38. vystup.chyba = EOVER;
  39. return vystup;
  40. }
  41. vystup.hodnota = (vystup.hodnota * 10) + (cislo - '0');
  42.  
  43. }
  44. else {
  45. vystup.chyba = EWRONGIN;
  46. return vystup;
  47. }
  48.  
  49. }
  50. return vystup;
  51. }
  52.  
  53.  
  54. int main()
  55. {
  56.  
  57. TValue promenna;
  58.  
  59. promenna = CteniRadku;
  60.  
  61. printf("%lu\t%d",promenna.hodnota, promenna.chyba);
  62. return 0;
  63.  
  64. }
  65.  
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement