Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <limits.h>
- #include <stdlib.h>
- enum tecodes
- {
- EOK = 0, /**< Bez chyby */
- ECLWRONG, /**< Chybný pøíkazový øádek. */
- EOVER, /** Preteceni vstupu*/
- EWRONGIN,
- EUNKNOWN, /**< Neznámá chyba */
- };
- typedef struct jmeno
- {
- unsigned long hodnota;
- int chyba;
- } TValue;
- TValue CteniRadku(void)
- {
- unsigned long cislo;
- TValue vystup =
- {
- .hodnota = 0,
- .chyba = EOK,
- };
- while ((cislo = getchar()) != '\n' && cislo != EOF){
- if (cislo >= '0' && cislo <= '9'){
- if (vystup.hodnota > (ULONG_MAX - (cislo - '0')) / 10){
- vystup.chyba = EOVER;
- return vystup;
- }
- vystup.hodnota = (vystup.hodnota * 10) + (cislo - '0');
- }
- else {
- vystup.chyba = EWRONGIN;
- return vystup;
- }
- }
- return vystup;
- }
- int main()
- {
- TValue promenna;
- promenna = CteniRadku;
- printf("%lu\t%d",promenna.hodnota, promenna.chyba);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement