簡體   English   中英

fscanf 沒有讀取隨機值,對嗎?

[英]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);

您正在打印radiusnsidesareaperimeter的地址。 &運算符獲取變量的地址。 你想打印它們的

您正在嘗試將指針打印為浮點數(您的編譯器應該抱怨)。 改變:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM