我有一个问题,读取包含浮点值的txt文件。 我已经看过一些关于读取txt文件的教程,所有这些教程都是使用fgetc或fgets来读取文件的内容。我正在为float寻找一些类似的函数,因为我的文件的内容是float。有没有办法读取包含浮点数的文件,或者我使用这些函数打破flaot并将每个作为一个字符读取,然后打印该值?
答案 0 :(得分:2)
答案 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
类似的字符串格式。
然后,您可以添加其他参数,这些参数将指针添加到您正在阅读的变量中。
它将返回成功读取的项目数。
还有其他方法。如果您的输入文件具有非平凡的结构,您可以尝试使用flex和bison等工具对其进行解析。 Flex是一个标记器:它将帮助您从文件中读取项目,将它们分开(字符串,数字,标识符,特殊符号 - 以您指定的任何方式)。 Bison是一个解析器生成器:你描述了一个令牌语法,它会为你生成一个解析器。
答案 3 :(得分:0)
如果您只从一个文本文件中读取,则可以使用I / O重定向。
#include <stdio.h>
int main() {
float a;
scanf("%f", &a);
return 0;
}
如果您的可执行文件名是abc.exe或简称abc, 运行方式:
abc < in.txt