gpt4 book ai didi

读取文件后,无法将我的数组放入函数中以使用新值进行更新

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

我有一个函数,其中有一个在该函数外部初始化的数组。在函数内部,我已将数组的所有值设置为零,这样它就不会返回一些垃圾。我正在尝试扫描文件,并使用它在文件中扫描的数字(例如 7),通过添加 1 来更新数组的索引(索引 7 的值现在为 1)。 while 循环首先会使程序崩溃,当我使用 for 循环时,程序会运行,但值不会更新。我需要让循环运行未知的时间,但我想这是另一个问题了。

void createVArray (FILE*votes, int ray[], int len){

votes=fopen("votes.txt","r");

int i,k,num;

for(i=1;i<len;i++){
ray[i]=0;
}

while(num!=30){
fscanf(votes,"%d",&num);
ray[num]++;
}

}

知道问题是什么吗?

最佳答案

   while(num!=30){
fscanf(votes,"%d",&num);
ray[num]++;
}

这里有几处错误。首先,您不初始化 num,因此第一次将 num30 进行比较将导致未定义的行为。神奇的数字30从何而来?

其次,读取 num 后,您需要确保它不大于 (len-1),然后再递增 ray[num]

也许这样的事情会起作用:

   while( fscanf(votes,"%d",&num) == 1 ) {
if ( (num >= 0) && (num < len) ) {
ray[num]++;
}
}

关于读取文件后,无法将我的数组放入函数中以使用新值进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38331566/

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