-1

我正在尝试读取 .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

由于某种原因,此代码无法存储数字。我如何将这些数字读取为浮点数、存储数和抽奖后?

4

1 回答 1

0
while (fscanf(arq, "%f\n", &premio[i])) != EOF )
       printf("%.2f\n", premio[i]);

将继续逐行读取文件,直到文件结束。premio在这种情况下,每次仅覆盖索引 0 处的值。

相反,你应该尝试一些类似的东西,

If ((fscanf(arq, "%f\n", &premio[i])) != EOF )
       printf("%.2f\n", premio[i]);
于 2019-06-09T18:04:49.513 回答