读取浮点值的文件

时间:2014-09-08 11:38:45

标签: c file

我有一个问题,读取包含浮点值的txt文件。 我已经看过一些关于读取txt文件的教程,所有这些教程都是使用fgetc或fgets来读取文件的内容。我正在为float寻找一些类似的函数,因为我的文件的内容是float。有没有办法读取包含浮点数的文件,或者我使用这些函数打破flaot并将每个作为一个字符读取,然后打印该值?

4 个答案:

答案 0 :(得分:2)

使用fgets阅读每一行,然后根据行的格式设置,您可以使用sscanf()来解析值,或strtod()

答案 1 :(得分:1)

像这样使用fscanf

fscanf(myfile,"%f",&myfloat);

答案 2 :(得分:0)

您可以使用fscanf,例如:

#include <stdio.h>

int main() {
    float var;
    FILE *file;
    file = fopen("input","r");
    fscanf(file, "%f", &var);
    printf("the value is %f\n",var);
    fclose(file);
    exit(0);
}

fscanf有两个初始参数,一个指向FILE结构的指针和一个与printf类似的字符串格式。 然后,您可以添加其他参数,这些参数将指针添加到您正在阅读的变量中。 它将返回成功读取的项目数。

还有其他方法。如果您的输入文件具有非平凡的结构,您可以尝试使用flexbison等工具对其进行解析。 Flex是一个标记器:它将帮助您从文件中读取项目,将它们分开(字符串,数字,标识符,特殊符号 - 以您指定的任何方式)。 Bison是一个解析器生成器:你描述了一个令牌语法,它会为你生成一个解析器。

答案 3 :(得分:0)

如果您只从一个文本文件中读取,则可以使用I / O重定向。

#include <stdio.h>

    int main() {
        float a;
        scanf("%f", &a);
        return 0;
    }

如果您的可执行文件名是abc.exe或简称abc, 运行方式:

abc < in.txt