gpt4 book ai didi

c - 获取一定数量的元素放入数组中

转载 作者:行者123 更新时间:2023-11-30 15:24:21 24 4
gpt4 key购买 nike

这是我到目前为止的代码:

#include "stdafx.h"

#define SIZE 200

int _tmain(int argc, _TCHAR* argv[])
{

FILE * ifp = NULL;
int inputArray[SIZE];
int i, j;
int c;

ifp = fopen("testfile.txt", "r");

for (i = 0; i <= SIZE; ++i)
fscanf(ifp, "%d", &inputArray[i]);
/*fscanf(ifp, "%d", */

for (i = 0; i <= SIZE; i++)
printf("%d", inputArray[i]);
return 0;


}

所以我有一个包含 n 个数字的文件,例如:
3
5 5 3
6
3 2 6 4 1 1

上面的代码似乎可以将数字放入数组中,例如 3 5 5 3 6 3 2...等。但是,数组大小为 200。因此数组中未使用的其余空间不仅仅是空白。里面有一个巨大而奇怪的数字所以当我打印出来时,它会打印出来35536326411 -858993460 -858993460它打印 -858993460 到我假设的大约 200 次。

我在 C 和编程方面完全是菜鸟。我向教授询问了数组大小,他说只需将其设置为一个较大的数字,例如 100 或 200,因为尝试将数组的大小设置为可以更改的变量(或与该概念相关的变量)很复杂,而且不是很复杂。还没有达到我们的水平。

我需要对这些数字进行数学运算,但我不想在计算中包含那些 -858993460 的内容。我如何确定数组中实际声明的最后一个元素的位置?有人请指出我正确的方向...

最佳答案

for (i = 0; i <= SIZE; ++i)

应该是

for (i = 0; i < SIZE; ++i)

否则,您对数组进行越界访问,这将导致未定义的行为。

for (i = 0; i < SIZE; ++i)
{
if(fscanf(ifp, "%d", &inputArray[i]) != 1)
break;
}

使用

将所有元素设置为 0
memset(array,0,sizeof(array));

关于c - 获取一定数量的元素放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454602/

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