|
|
1.1 ! root 1: /* quad precision input routine. ! 2: * reads and converts the next number on the ! 3: * standard input after skipping over white space. ! 4: */ ! 5: #include <stdio.h> ! 6: #include "mp.h" ! 7: ! 8: min(a) ! 9: mint *a; ! 10: { ! 11: return(m_in(a, 10, stdin)); ! 12: } ! 13: ! 14: m_in(a,b,f) ! 15: mint *a; ! 16: int b; ! 17: FILE *f; ! 18: { ! 19: ! 20: mint x; ! 21: mint base; ! 22: int sign, c; ! 23: ! 24: base = itom(b); ! 25: sign = 1; ! 26: x.high = 0.; ! 27: x.low = 0; ! 28: while((c = getc(f)) != EOF) ! 29: switch(c) ! 30: { ! 31: case '\\': ! 32: getc(f); ! 33: continue; ! 34: case '\t': ! 35: case '\n': ! 36: x.high *= sign; ! 37: x.low *= sign; ! 38: *a = x; ! 39: return(0); ! 40: case ' ': ! 41: continue; ! 42: case '-': ! 43: sign = -sign; ! 44: continue; ! 45: default: ! 46: if(c>='0' && c<='9'){ ! 47: c -= '0'; ! 48: x = mult(x, base); ! 49: x = madd(x, itom(c)); ! 50: continue; ! 51: }else{ ! 52: printf("min: bad number format\n"); ! 53: exit(); ! 54: } ! 55: } ! 56: *a = x; ! 57: return(EOF); ! 58: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.