gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:20 25 4
gpt4 key购买 nike

我正在尝试将文本文件中的 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("%lf\n",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++;

我测试过,效果不错

关于c - 将文本文件中的十进制数存储到 C 中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53680921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com