c point ccccc

代码来自《K&R》

范例输入(控制台):

-32 23 11 18
33987 23
^Z

范例输出:

-32
23
11
18
33987
23

#include<stdio.h>
#define SIZE 100

int main()
{
    int n, array[SIZE], getint(int *);
    
    for(n = 0; n < SIZE && getint(&array[n]) != EOF; n ++)
        ;
    for(int i = 0; i < n; i ++)
        printf("%d
", *(array+i));
    return 0;
}

#include<ctype.h>

int getch(void);
void ungetch(int);

int getint(int *pn)
{
    int c, sign;
    
    while(isspace(c = getch()))
        ;
    if(!isdigit(c) && c != EOF && c != '-' && c != '+'){
        ungetch(c);
        return 0;
    }
    sign = (c == '-')? -1 : 1;
    if(c == '+' || c == '-')
        c = getch();
    for(*pn = 0; isdigit(c); c = getch())
        *pn = 10 * *pn + (c - '0');
    *pn *= sign;
    if(c != EOF)
        ungetch(c);
    return c;
}

#define BUFSIZE 100

char buf[BUFSIZE];
int bufp = 0;

int getch(void)
{
    return (bufp > 0)? buf[--bufp] : getchar(); 
}

void ungetch(int c)
{
    if(bufp >= BUFSIZE)
        printf("ungetch: too many characters
");
    else
        buf[bufp++] = c;
}
原文地址:https://www.cnblogs.com/xkxf/p/6144360.html