如何从文件中获取浮点数
我有这个文件 txt 有这三个数字“4.151120 4.100 7.9999”。我应该创建一个程序来读取它并对其进行一些进一步的操作。但我不能
int main (int argc, char *argv[]){
FILE *arq;
arq = fopen("values.txt","r");
float num1, num2, num3;
fscanf(arq,"%.6f %.6f %.6f", &num1, &num2, &num3);
printf("%.6f %.6f %.6f", num1, num2, num3);
fclose(arq);
return 0;
回答
它很简单:
#include <stdio.h>
int main(void)
{
FILE *arq;
arq = fopen("values.txt", "r");
float n1, n2, n3;
if(fscanf(arq, "%f%f%f", &n1, &n2, &n3) != 3)
fprintf(stderr, "Something's wrongn");
else
printf("Numbers are %f, %f, %fn", n1, n2, n3);
fclose(arq);
}
您不必声明精度(输入没有实际意义),除非您想匹配数字之间的特定字符串而不是用空格分隔(默认),否则您可以将其省略。
作为一个特殊的豁免,您可以省略return 0from main,它在此处暗示。
- `.` 与 [`scanf()`](https://pubs.opengroup.org/onlinepubs/9699919799/functions/scanf.html) 等人不正确。使用宽度可能是相关的,但通常不是。它限制了数字字段中非空白字符的数量。如果代码使用`%4f`,那么读取的第一个数字将是`4.15`,第二个是样本数据的`1120`。