C编程读取文件

标签 c file-handling

我正在尝试编写一个非常简单的代码来读取文件。但是在那个文件中我有 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/

相关文章:

c - 将数据写入文件但文件仍然包含 NULL

julia - Julia 中的 python with open(file) 相当于什么

c - 无法实现从文件中检索 n 字节的(稳定)方法

c - 将字符串文件读取到字符串数组

c - "\377\377\377\377\020\020\006"的十六进制值是多少?

c - 将多个具有不同参数计数的函数包装在包装函数中

c - 在结构变量中写入一个字节

c - 当长度 > 2G 时,Fread on Lion 无法读取

c++ - 程序进入无限循环 C++

文件或无的 Python 上下文