将文本文件中的十进制数存储到C中的数组中



我正试图将文本文件中的10个十进制数字存储到一个数组中。我的问题是它跳过了几个数字,直到它到达行的末尾。

我通过打印程序到达文件末尾所需的周期数来调试程序,结果是10。它是文件中有多少数字的正确值。但是当我显示数组的元素值时,只有5个数字。当我将存储的数字与文本文件编号进行比较时,结果是跳过了几个数字。

下面是我的代码:

#include <stdio.h>
#include <stdlib.h>
main(void) 
{
FILE *inp;         /* pointer to input file */
double item;
int cnt=0,y,d,i;
double array[300],swap;  
/* Prepare files for input */
inp = fopen("C:/Users/infile.txt", "r");

/* Read each item */
while ( (fscanf(inp, "%lf", &item) == 1) && (!feof(inp)) ) {
array[cnt] = item;
cnt++; 
}

for (int i = 0; i < cnt; i++)
{
printf("%lfn",array[i]);
i++;
}
printf("%d",cnt);

fclose(inp); /* Close the files */
return (0);
}

-在文本文件中,有10个双数,范围从0到101(例如15.12563(

-while循环的循环时间值为10(cnt达到10(

-我的代码只存储5个数字,而不是10,这跳过了其余的5个数字。但它说它已经达到了第10行的最后一个值。

这些是文本文件中的值:

21.388000

12.372628

21.961366

85.616285

30.123001

30.271053

70.733982

35.867327

48.339462

82.459009

如果我留下了一些关于我的担忧的关键信息,请询问。感谢

是一个非常简单的问题

您正确存储了值。错误在您的打印周期中。将i递增两次。请从第二个周期中删除i++;

我测试了它,它运行良好

最新更新