c - fscanf 没有读取随机值,对吗?
问题描述
我试图从文件中读取一些数字并将结果输出到另一个文件中。每次我尝试这样做时,即使对于我没有修改的值,我也会得到随机值。我知道这可能与我阅读信息的方式有关,但我不确定。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
。运算符获取变量的&
地址。你想打印它们的值。
推荐阅读
- r - 基于多个动态条件过滤数据帧,这些条件取决于数据的子集,例如。通过应用循环
- swiftui - SwiftUI:如何为图标水平创建滚动视图
- java - 安卓工作室 Java。在后台显示一个弹出窗口
- amazon-web-services - AWS APIgateway 响应映射
- javascript - 玩家有时会在无限奔跑游戏的原型中逐步穿越平台?
- use-state - 在同一个 div 容器中获取两个不同的 ref
- python - 我可以使用 Numba、矢量化或多处理加速这种空气动力学计算吗?
- android - lateinit 属性 pokemon 尚未初始化
- ios - 协议委托不调用
- c++ - 模板参数属性的部分特化