C - FSNF 不读取随机值,对吗?



我试图从一个文件中读取一些数字并将结果输出到另一个文件中。每次我尝试这样做时,即使对于我没有修改的值,我也只是获得随机值。我知道这可能与我阅读信息的方式有关,但我不确定。 Lab4样品的内容.dat

12.4   24.0
5.6    8.0
7.85   12.0
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//#define FILE_IN “lab4.dat”
#define FILE_IN "lab4sample.dat"
double areaPolygon(double radius, double nsides);
double perimeterPolygon(double radius, double nsides);
int main(void)
{
FILE * infile;
FILE * answer_file;
double radius;
double nsides;
double area;
double perimeter;
infile = fopen(FILE_IN,"r");
if(infile == NULL)
{
printf("Error on opening the data filen");
exit(EXIT_FAILURE);
}
answer_file = fopen("lab4.out","w");
if(answer_file == NULL)
{
printf("Error on opening the output filen");
exit(EXIT_FAILURE);
}
fprintf(answer_file, "n  Lab 4.nn");
fprintf(answer_file, "            Number      Perimeter      Area Of  n");
fprintf(answer_file, " Radius    Of Sides    Of Polygon      Polygon  n");
fprintf(answer_file, "--------   --------   ------------   ----------- n");
while((fscanf(infile, "%lf %lfn",&radius, &nsides))== 2)
{
area = areaPolygon(radius,nsides);
perimeter = perimeterPolygon(radius,nsides);
fprintf(answer_file,"%5.2f %5.2f %5.2f %5.2f n",&radius,&nsides,&area,&perimeter);
}
}

您正在尝试将指针打印为浮点数(您的编译器应该抱怨(。改变:

fprintf(answer_file,"%5.2f %5.2f %5.2f %5.2f n",&radius,&nsides,&area,&perimeter);

自:

fprintf(answer_file,"%5.2f %5.2f %5.2f %5.2f n", radius, nsides, area, perimeter);
fprintf(answer_file,"%5.2f %5.2f %5.2f %5.2f n",&radius,&nsides,&area,&perimeter);

您正在打印radiusnsidesareaperimeter的地址。&运算符获取变量的地址。您想要打印其

最新更新