gpt4 book ai didi

c - 如何将文件中的字符串放入c中的数组中

转载 作者:行者123 更新时间:2023-11-30 19:28:57 27 4
gpt4 key购买 nike

所以我有这个代码:

char inte[10];
while(j<noinput) {
fscanf(circuit,"%s",inte);
vararray[count]=inte;
count++;
j++;
}

但是当我像这样打印数组的内容时:

for (h=0;h<noinput+2;h++){
printf("%dth variable: %s\n",h,vararray[h]);
}

前两个之后的元素(为特殊元素保留)都等于我之前从 fscanf 中获取的 LAST 字符串。当我只设置

时,我不知道 fscanf 中的字符串之一如何等于数组中的多个插槽
vararray[count]=inte;

这是否意味着数组的每个元素都会不同,因为我每次都会递增计数?我感到很困惑。我也尝试过这样做:

 fscanf(circuit,"%s",vararray[count]);

但这也不起作用,并且给了我某些索引的空元素。

最佳答案

你做的事情太错误了。通过“vararray[count]=inte;”您正在进行指针分配,因此所有 vararray 都被相同的字符串填充。我猜你是 C 新手,所以我会回答这个问题。正确的方法如下所示

固定尺寸​​解决方案:

char vararray[ROWCOUNT][BUFFERSIZE];
for(count=0; j<noinput; ++count, ++j) {
fscanf(circuit,"%s",(char*)vararray[count]);
}

具有动态内存管理

char * vararray[ROWCOUNT];
for(count=0; j<noinput; ++count, ++j) {
vararray[count] = (char*)malloc(BUFSIZE);
fscanf(circuit,"%s", vararray[count]);
}

我想警告你现在成为 C 专家的方式有点疯狂,我的意思是除非你有其他选择。下面我放的例子和你写的东西是完全不安全和不安全的......

关于c - 如何将文件中的字符串放入c中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451388/

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