使用 fscanf 读取文件的每一行
Read each line of a file using 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
由于某种原因,此代码无法存储数字。我如何将这些数字读作浮动、存储和抽奖之后的数字?
while (fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);
将继续读取文件 line-by-line,直到文件结束。在这种情况下,每次只覆盖 premio
的索引 0 处的值。
相反,您应该尝试以下方法,
If ((fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);
我正在尝试读取 .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
由于某种原因,此代码无法存储数字。我如何将这些数字读作浮动、存储和抽奖之后的数字?
while (fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);
将继续读取文件 line-by-line,直到文件结束。在这种情况下,每次只覆盖 premio
的索引 0 处的值。
相反,您应该尝试以下方法,
If ((fscanf(arq, "%f\n", &premio[i])) != EOF )
printf("%.2f\n", premio[i]);