gpt4 book ai didi

C/String 数据从文件到数组。分段故障

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

我正在编写一个程序,从文本文件中流式传输单词并将它们放入一个数组中。我还添加了数组数据的显示以查看是否一切正常,但编译后出现段错误。

我是系统编程的新手,所以我知道我可能犯了一些基本错误。请找到下面的代码并告诉我哪里出错了。

#include <stdio.h>

#define BUFFER 100

int main() {
char tab[BUFFER];
FILE *wp;
wp = fopen("tab_file_b_words.txt", "r");
if(wp == NULL)
{
printf("error/n");
return -1;
}
int i;
for(i=0; i<sizeof(wp); i++) {
if(wp != NULL)
fscanf(wp, "%s", &tab[i]);
else
break;
}
printf("Content: \n");
for(i = 0; i < BUFFER; i++) {
if(tab[i] != NULL)
printf("%s\n", tab[i]);
else
break;
}
fclose(wp);
return 0;
}

最佳答案

  1. 截至目前,您拥有 char

    数组

    你需要的是

       char tab[BUFFER]; --> char tab[BUFFER][SOME_LENGTH];

       fscanf(wp, "%s", &tab[i]); --> fscanf(wp, "%s", tab[i]);
  2. %s 期望 null 终止 char * 但您传递的是 char

        printf("%s\n", tab[i]);
  3. sizeof(wp) 是指针的大小。

    for(i=0; i<sizeof(wp); i++)

    你需要的是

      while (1 == fscanf(wp, "%s", tab[i]))
    {
    ...
    }

关于C/String 数据从文件到数组。分段故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56292399/

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