首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么读入的数据都是零?解决思路

2012-02-24 
为什么读入的数据都是零?/*这是从一个文件中读入数据找出最大值与最/*小值,写入数据部分还未编写#include

为什么读入的数据都是零?
/*   这是从一个文件中读入数据找出最大值与最/*小值,写入数据部分还未编写

#include <string.h>
#include <stdio.h>

int   main(int   argc,char*argv[])
{
    char     in_file_name[100];
    char   *str_in= ".txt ";
    strcpy(in_file_name,argv[1]);
    strcat(in_file_name,str_in);

    char     out_file_name[100];
    char   *str_out= "_out.txt ";
    strcpy(out_file_name,argv[1]);
    strcat(out_file_name,str_out);

  FILE   *in_file;
  in_file=fopen(in_file_name, "rb+ ");
  FILE   *out_file;
  out_file=fopen(out_file_name, "w+ ");

  double   u=0,   max,min;
  int   flag=1;
  printf( "in_filename=%s,       out_filename=%s\n ",in_file_name,out_file_name);
  while(!feof(in_file))
      {  
          fscanf(in_file, "%2.15f ",&u);
        printf( "u=%2.15f\n ",u);
    if(flag==1){max=u;min=u;   }
          else   {if   (u> max)max=u;if(u <min)   min=u;}  
          flag=0;
      }
  printf( "max=%2.15f       ,min=%2.15f ",max,min);
  fclose(in_file);
  fclose(out_file);
  return   0;
}

文件中的数据基本上为:
-219287242.720172    
-219287242.720230    
-219287247.166892  
...........
Linux编译运行后输出的全是0!!!
不知为什么,
哪位大侠可否帮助一下?非常感激。


[解决办法]
fscanf(in_file, "%2.15f ",&u);

换成
fscanf(in_file, "%lf ",&u);就可以了

你的数太大,溢出了.
[解决办法]
就因为这个把C程序改成C++的么?
[解决办法]
增长知识

热点排行
Bad Request.