为什么读入的数据都是零?
/* 这是从一个文件中读入数据找出最大值与最/*小值,写入数据部分还未编写
#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++的么?
[解决办法]
增长知识