我正在尝试编写一个非常简单的代码来读取文件。但是在那个文件中我有 M_PI/2,它是 pi/2。当我的代码读取该文件时,它会将 M_PI/2 吐为 0.000。如何让我的程序读作 pi/2。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
FILE *infile;
infile = fopen("./test.txt","r");
double p;
fscanf(infile, "%lf", &p);
printf ("%lf\n", p);
}
test.txt
M_PI/2
最佳答案
您需要阅读文件的内容并自行评估。 M_PI 不是编程环境上下文之外的数字,同样除法运算符/实际上只是一个斜杠,除非有什么东西将它解释为除法。因此,您需要创建某种计算器来将文件内容提供给。
当您在 C 源代码中编写 M_PI/2
时,您会得到 π/2,因为编译器知道 M_PI 在 math.h 中定义为 π(实际上是 π 的近似值),并且它知道除法运算符。不过,您还没有编写编译器或任何可以按照您想要的方式计算 M_PI/2
的东西,所以您只是在文件内容写入文件时获取它们。
读取文件时获取所需内容的最简单方法是在文件中存储所需的值,即 1.5707963267949。 fscanf()
将读取该值并将其正确解释为 float ,因为这是您告诉它在格式字符串中读取的值。
关于C编程读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184136/