diff options
| author | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-12 16:54:41 +0800 |
|---|---|---|
| committer | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-12 16:54:41 +0800 |
| commit | 4c2a037165c21ac8fd1007824be72a2a8d61e74e (patch) | |
| tree | 12729040a473f7d597664db610da67d927a5c23a /4 | |
| parent | 8943e228e20f892c73b1a9aa1a4f2d4ef7a36d86 (diff) | |
| download | k&r-exercises-4c2a037165c21ac8fd1007824be72a2a8d61e74e.tar.gz | |
4.8
Diffstat (limited to '4')
| -rw-r--r-- | 4/8.c | 28 | ||||
| -rw-r--r-- | 4/9.c | 2 |
2 files changed, 6 insertions, 24 deletions
@@ -155,31 +155,13 @@ void clear() { ; } -int pushb = 0; -int pushbval = 0; - -int getch() { - if (pushb) { - pushb = 0; - return pushbval; - } - return (bufp > 0) ? buf[--bufp] : getchar(); -} +int getch() { return (bufp > 0) ? buf[--bufp] : getchar(); } void ungetch(int c) { - pushbval = c; - pushb = 1; -} - -void ungets(char s[]) { - int len, i; - len = strlen(s); - if (bufp + len - 1 >= BUFSIZE) - printf("ungets: too many characters\n"); - else { - for (i = len; i >= 0; i--) - buf[bufp++] = s[i]; - } + if (bufp >= BUFSIZE) + printf("ungetch: too many characters\n"); + else + buf[bufp++] = c; } int getop(char s[]) { @@ -10,7 +10,7 @@ #define ASSIGNMENT '2' /* signal that a variable was found */ #define VARIABLE '3' /* signal that a variable was found */ #define MAXVAL 100 /* max depth of val and var stack */ -#define BUFSIZE 100 +#define BUFSIZE 1 #define VARCOUNT 52 /* supported variable count */ #define INDEX(x) (x <= 'Z' ? x - 'A' : x - 71) /* index of the variable */ |
