You can use fscanf
to read in floating point numbers directly, without the need to call atof
. Assuming you have a file called numbers.txt
with the content:
3.14159
2.877
91.3
-1392.22
0.1234
The following program will read them in and store them in an array of floats. Take care though, the array is only large enough to hold 5 numbers. If you need a variable amount of numbers, then you must dynamically allocate an array to hold them.
#include <stdio.h>
#include <string.h>
int main(void) {
int i = 0;
float numbers[5] = {0};
FILE *fp = fopen("numbers.txt", "rb");
if (!fp) {
puts("could not open file");
return 1;
}
for (;;) {
if (fscanf(fp, "%f
", &numbers[i]) != 1) {
break;
}
i++;
}
fclose(fp);
return 0;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…