| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 707 人关注过本帖
标题:书上的一段代码中的return
只看楼主 加入收藏
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
结帖率:95.65%
收藏
 问题点数:0 回复次数:1 
书上的一段代码中的return
一下代码是C程序设计语言第四章的一段。
main()函数是我自己写的,书上的示例代码只有3个getch() ungetch() getint()三个函数。

getint()中为什么要return c,想了半天都没想明白。
从代码上来看不是应该return 1或者return EOF吗?

程序代码:
#include <ctype.h>
#include <stdio.h>
#define max_index(x,y) x = y;
int getint(int *pn);

int main(void)
{
    int n,k;
    int array[100];

    for(n = 0; n < 100 && getint(&array[n]) != EOF; n++)
        ;
    max_index(k,n);

    for(n = 0; n >=0 && n < k; n++)
        printf("%d%c",array[n],!((n+1)%8)?'\n':' ');
        
    return 0;
}


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\n");
    else
       buf[bufp++] = c;
}
搜索更多相关主题的帖子: return C程序设计 
2017-02-11 14:01
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
看来不能光看课本~要结合自己的理解看看~最好不要因为课本与自己的理解有出入就全盘否定自己~

那题return c的值要看主函数里面有个EOF的判断~如果读取文件到末尾或者输入ctrl+z的话会读取结束~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-11 15:34
快速回复:书上的一段代码中的return
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.138735 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved