Прочитать каждую строку файла, используя fscanf
Я пытаюсь прочитать каждую строку файла.dat и сохранить его в формате с плавающей запятой. Я использую fscanf. Моя цель - сохранить эти строки после того, как я разыграю.
#include <stdio.h>
int main(void)
{
char url[]="PREMIOS.dat", nome[20];
float premio[12];
FILE *arq;
arq = fopen(url, "r");
if (arq == NULL) {
printf("Error\n");
} else {
for(i = 0; i < 12; i++) {
while((fscanf(arq, "%f\n", &premio[i])) != EOF)
printf("%.2f\n", premio[i]);
}
}
fclose(arq);
return 0;
}
Файл.dat:
100.00
900.00
600.00
1000.00
0.00
400.00
200.00
800.00
0.01
300.00
500.00
700.00
Этот код не может хранить числа по какой-то причине. Как я могу прочитать эти числа как float, storage и после этого розыгрыша?
1 ответ
Решение
while (fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);
Продолжит читать файл построчно, до конца файла. В этом случае только значение с индексом 0 premio
перезаписывается каждый раз.
Вместо этого вы должны попробовать что-то вроде,
If ((fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);