[英]fscanf not reading in random values right?
我試圖從一個文件中讀取一些數字並將 output 的結果讀入另一個文件。 每次我嘗試這樣做時,即使對於我沒有修改的值,我也會得到隨機值。 我知道這可能與我閱讀信息的方式有關,但我不確定。 lab4sample.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 file\n");
exit(EXIT_FAILURE);
}
answer_file = fopen("lab4.out","w");
if(answer_file == NULL)
{
printf("Error on opening the output file\n");
exit(EXIT_FAILURE);
}
fprintf(answer_file, "\n Lab 4.\n\n");
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 %lf\n",&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);
您正在打印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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.