文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> cpl_p61中的例题出现奇怪的现象

cpl_p61中的例题出现奇怪的现象

时间:2009-04-10  来源:hubo214

cpl的P61中的例题源码如下:

#include <stdio.h>
#define MAXLINE 100

main()
{
    double sum, atof(char []);
    char line[MAXLINE];
    int getline(char line[], int max);

    sum = 0;
    while (getline(line,MAXLINE) > 0)
         printf("\tsum = %g\n", sum += atof(line));
    return 0;
}

double atof(char s[])
{
    double val, power;
    int i, sign;

    for (i = 0; isspace(s[i]); i++)
           ;
    sign = (s[i] == '-') ? -1 : 1;
    if (s[i] == '+' || s[i] =='-')
       i++;
    for (val=0; isdigit(s[i]); i++)
       val = 10.0 * val + (s[i] - '0');
    if (s[i] == '.')
       i++;
    for (power=1.0; isdigit(s[i]); i++)  {
        val = 10.0 * val + (s[i] - '0');
        power = power * 10.0;
    }
    return sign * val / power;
}

int getline(char s[], int limit)
{
    int i, c;
    i = 0;

    while ( --limit >0 && (c=getchar()) != EOF && c != '\n')
         s[i++] = c;
    if ( c = '\n' )
      s[i++] = '\n';
    s[i] = '\0';
    return i;
}

编译命令及结果:
hubo@hubo:~/cpl/cap4$ gcc -g -o test 4_2.c
hubo@hubo:~/cpl/cap4$ ./test  < 4_2.c > 3
 
文本文件shu.c及文本文件见上传文件。由于文本文件3太大,共570807行,其中除了第一行,第二行和最后一行外,其他所有的行内容都是一样的。对其内容进行截短,内容为:(中间的省略号代表共有570803行)
    sum = 111.023
    sum = 110.234
    sum = 10.775
    ..........
    ..........
    sum = 10.

shu.c 仅三行,内容如下:
    +111.023
                              -0.789
                                                -99.459

重定向后的文本文件3  居然有7.6M,
相关阅读 更多 +
排行榜 更多 +
舔狗之路

舔狗之路

休闲益智 下载
实景全景地图

实景全景地图

交通出行 下载
射箭英雄

射箭英雄

休闲益智 下载